#!/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 => 8 }
use XMLRPC::Lite;
my($a, $s, $r, $serialized, $deserialized);
{
print "XML-RPC deserialization test(s)...\n";
$deserialized = XMLRPC::Deserializer->deserialize('
SOAP.Lite.Bug.Report
ThisWorks
')->root;
ok($deserialized->{params}->[0]->{This} eq 'Works');
$serialized = XMLRPC::Serializer->serialize({param1 => 'value1', param2 => undef, param3 => 0});
ok($serialized =~ m!param2!);
ok($serialized =~ m!param30!);
$deserialized = XMLRPC::Deserializer->deserialize($serialized)->root;
ok($deserialized->{param2} eq '');
ok($deserialized->{param3} == 0);
$serialized = XMLRPC::Serializer->method(a => {param1 => 'value1', param2 => undef, param3 => 'value3'});
ok($serialized =~ m!a(param1value1|param2|param3value3){3}!);
$serialized = XMLRPC::Serializer->method(a => {param1 => 'value1'});
ok($serialized eq 'aparam1value1');
eval { XMLRPC::Serializer->serialize(XMLRPC::Data->type(base63 => 1)) };
ok($@ =~ /unsupported datatype/);
}