#!/bin/env perl
BEGIN {
unless(grep /blib/, @INC) {
chdir 't' if -d 't';
unshift @INC, '../lib' if -d '../lib';
}
}
use strict;
use Test;
BEGIN { plan tests => 47 }
use SOAP::Lite;
my($a, $s, $r, $serialized, $deserialized);
{ # check deserialization of envelope with result
print "Deserialization of envelope with result test(s)...\n";
$deserialized = SOAP::Deserializer->deserialize('
- 20
- 40
- 60
- 100
- 200
');
ok($deserialized->result->[2] == 60);
ok((my @array = $deserialized->paramsall) == 1);
ok(ref $deserialized->body eq 'HASH'); # not blessed anymore since 0.51
}
{
print "hex encoding test(s)...\n";
$a = "\0 {a}\1";
$serialized = SOAP::Serializer->serialize(SOAP::Data->type(hex => $a));
ok($serialized =~ />00207B617D01);
ok(SOAP::Deserializer->deserialize($serialized)->root eq $a);
}
{
print "Deserialization of 1999/2001 schemas test(s)...\n";
foreach (split "\n", <12
12
12
12
12
12
12
EOX
$deserialized = SOAP::Deserializer->deserialize($_);
ok($deserialized->root == 12);
}
eval { SOAP::Deserializer->deserialize('12') };
ok($@ =~ m!Unrecognized type '\{http://www.w3.org/1999/XMLSchema\}something'!);
eval { SOAP::Deserializer->deserialize('12') };
ok($@ =~ m!Unrecognized type '{http://some.thing.else/XMLSchema}something'!);
foreach (qw(base64Binary hexBinary anyType anySimpleType
gMonth gYearMonth gYear gMonthDay gDay duration anyURI dateTime)) {
eval { SOAP::Deserializer->deserialize(qq!12!) };
ok($@ =~ m!Unrecognized type '{http://www.w3.org/1999/XMLSchema}$_'!);
}
ok(SOAP::Deserializer->deserialize(qq!true!)->root eq '1');
eval { SOAP::Deserializer->deserialize(qq!something!) };
ok($@ =~ m!Wrong boolean value!);
ok(SOAP::Deserializer->deserialize(qq!true!)->root eq '1');
ok(SOAP::Deserializer->deserialize(qq!1!)->root eq '1');
ok(SOAP::Deserializer->deserialize(qq!false!)->root eq '0');
ok(SOAP::Deserializer->deserialize(qq!0!)->root eq '0');
foreach (qw(ur-type base64 hex
timeDuration uriReference timeInstant month year recurringDate recurringDay)) {
eval { SOAP::Deserializer->deserialize(qq!12!) };
ok($@ =~ m!Unrecognized type '{http://www.w3.org/2001/XMLSchema}$_'!);
}
eval { SOAP::Deserializer->deserialize(qq!something!) };
ok($@ =~ m!Wrong boolean value!);
ok(SOAP::Deserializer->deserialize(qq!true!)->root eq '1');
ok(SOAP::Deserializer->deserialize(qq!1!)->root eq '1');
ok(SOAP::Deserializer->deserialize(qq!false!)->root eq '0');
ok(SOAP::Deserializer->deserialize(qq!0!)->root eq '0');
}