#!/usr/bin/perl
use strict;
use warnings;
use Test::More tests => 36;
use Protocol::XMLRPC::MethodResponse;
eval { Protocol::XMLRPC::MethodResponse->parse };
ok($@);
my $xml = qq|FooBar|;
my $res = Protocol::XMLRPC::MethodResponse->parse($xml);
is($res->param->value, 'FooBar');
is("$res", qq|FooBar|);
is($res->value, 'FooBar');
$xml = qq|BarFoo|;
$res = Protocol::XMLRPC::MethodResponse->parse($xml);
is($res->param->value, 'BarFoo');
is("$res", $xml);
is($res->value, 'BarFoo');
$xml = qq|false|;
$res = Protocol::XMLRPC::MethodResponse->parse($xml);
is($res->param->value, 'false');
is("$res", $xml);
is($res->value, 'false');
$xml = q|123|;
$res = Protocol::XMLRPC::MethodResponse->parse($xml);
is($res->param->value, '123');
is("$res", $xml);
is($res->value, '123');
$xml = qq|321|;
$res = Protocol::XMLRPC::MethodResponse->parse($xml);
is($res->param->value, '321');
is("$res", $xml);
is($res->value, '321');
$xml = qq|19980717T14:08:55|;
$res = Protocol::XMLRPC::MethodResponse->parse($xml);
is($res->param->value, '900684535');
is("$res", $xml);
is($res->value, '900684535');
$xml = qq|12Foofalse-31.2|;
$res = Protocol::XMLRPC::MethodResponse->parse($xml);
is_deeply($res->param->value, [12, 'Foo', 'false', -31.2]);
is("$res", $xml);
is_deeply($res->value, ['12', 'Foo', 'false', -31.2]);
$xml = qq|fooBar18barFoofooboolfalse|;
$res = Protocol::XMLRPC::MethodResponse->parse($xml);
is_deeply($res->param->value, {fooBar => 18, barFoo => 'foo', bool => 'false'});
is("$res", $xml);
is_deeply($res->value, {fooBar => 18, barFoo => 'foo', bool => 'false'});
$res = Protocol::XMLRPC::MethodResponse->new(123);
is("$res", qq|123|);
is($res->param->value, 123);
is($res->value, 123);
$res = Protocol::XMLRPC::MethodResponse->new([]);
is("$res", qq||);
is_deeply($res->param->value, []);
is_deeply($res->value, []);
$res = Protocol::XMLRPC::MethodResponse->new({});
is("$res", qq||);
is_deeply($res->param->value, {});
is_deeply($res->value, {});
$xml =
qq||;
$res = Protocol::XMLRPC::MethodResponse->parse($xml);
is_deeply($res->value, '');
$res = Protocol::XMLRPC::MethodResponse->parse(<<'EOF');
id123
children
test13.99
test21234
EOF
is_deeply(
$res->value,
{ 'children' => {
'test' => '13.99',
'test2' => '1234'
},
'id' => '123'
}
);