#!/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' } );