#!/usr/bin/env perl # reproduce the examples from # http://www.cafeconleche.org/books/xmljava/chapters/ch02s05.html use warnings; use strict; use XML::Compile::RPC::Client; use XML::Compile::Tester; use Test::More tests => 7; my $rpc = XML::Compile::RPC::Client->new(destination => 'dummy'); my $xml = $rpc->_callmsg('getQuote', string => 'RHAT'); compare_xml($xml, <<'__EXPECT'); getQuote RHAT __EXPECT my ($rc, $data) = $rpc->_respmsg(<<'__RESPONSE'); 4.12 __RESPONSE cmp_ok($rc, '==', 0, 'correct messsage'); is_deeply($data, 4.12); my @values = ({string => 'RHAT'}, {double => 4.12}, {double => 4.25}); my $xml2 = $rpc->_callmsg('getQuote', array => {data => {value => \@values}}); compare_xml($xml2, <<'__EXPECT'); getQuote RHAT 4.12 4.25 __EXPECT my @members = ( {name => 'symbol', value => {string => 'RHAT'}} , {name => 'limit', value => {double => 2.25}} , {name => 'expires', value => { 'dateTime.iso8601' => '2002-07-09T20:00:00Z' }} ); my $xml3 = $rpc->_callmsg('bid', struct => { member => \@members }); compare_xml($xml3, <<'__EXPECT'); bid symbol RHAT limit 2.25 expires 2002-07-09T20:00:00Z __EXPECT my ($rc2, $data2) = $rpc->_respmsg(<<'__RESPONSE'); faultCode 23 faultString Unknown stock symbol ABCD __RESPONSE cmp_ok($rc2, '==', 23, 'fault messsage'); is_deeply($data2, 'Unknown stock symbol ABCD');