#!/bin/env perl BEGIN { unless(grep /blib/, @INC) { chdir 't' if -d 't'; unshift @INC, '../lib' if -d '../lib'; } } use strict; use Test; use XMLRPC::Lite; my($a, $s, $r); my $proxy = 'http://betty.userland.com/RPC2'; # ------------------------------------------------------ use SOAP::Test; $s = XMLRPC::Lite->proxy($proxy)->on_fault(sub{}); eval { $s->transport->timeout($SOAP::Test::TIMEOUT = $SOAP::Test::TIMEOUT) }; $r = $s->test_connection; unless (defined $r && defined $r->envelope) { print "1..0 # Skip: ", $s->transport->status, "\n"; exit; } # ------------------------------------------------------ plan tests => 10; { ok((XMLRPC::Lite -> proxy($proxy) -> call('examples.getStateStruct', {state1 => 12, state2 => 28}) -> result or '') eq 'Idaho,Nevada'); ok((XMLRPC::Lite -> proxy($proxy) -> call('examples.getStateName', 21) -> result or '') eq 'Massachusetts'); ok((XMLRPC::Lite -> proxy($proxy) -> call('examples.getStateNames', 21,22,23,24) -> result or '') =~ /Massachusetts\s+Michigan\s+Minnesota\s+Mississippi/); $s = XMLRPC::Lite -> proxy($proxy) -> call('examples.getStateList', [21,22]); ok(($s->result or '') eq 'Massachusetts,Michigan'); ok(! defined $s->fault); ok(! defined $s->faultcode); print "XMLRPC autodispatch and fault check test(s)...\n"; eval "use XMLRPC::Lite +autodispatch => proxy => '$proxy', ; 1" or die; XMLRPC->getStateName(21); $r = XMLRPC::Lite->self->call; ok(ref $r->fault eq 'HASH'); ok($r->fault->{faultString} =~ /Can't evaluate/); ok($r->faultstring =~ /Can't evaluate/); ok($r->faultcode == 7); }