use strict;
use warnings;
use lib qw(lib t/lib);
use Test::More tests => 3;
use MyElements::sayHello;
my $xml = <<'EOT';
<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" >
<SOAP-ENV:Body>
<sayHelloResponse xmlns="urn:HelloWorld">
<sayHelloResult>Hello Adam</sayHelloResult>
</sayHelloResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
EOT
use_ok('SOAP::WSDL::Expat::MessageParser_XS');
use MyTypemaps::HelloWorld;
my $xs_parser = SOAP::WSDL::Expat::MessageParser_XS->new({
class_resolver => 'MyTypemaps::HelloWorld',
});
my $result = $xs_parser->parse_string($xml);
is "$result", '<sayHelloResponse xmlns="urn:HelloWorld"><sayHelloResult>Hello Adam</sayHelloResult></sayHelloResponse>';
is $result->get_sayHelloResult(), 'Hello Adam';
__END__
cmpthese( 500, {
# XML_Simple => sub {
# push @result, XMLin($xml);
# },
wsdl => sub {
push @result, $wsdl_parser->parse_string($xml);
},
wsdl_xs => sub {
push @results, $parser->parse_string($xml);
},
libxml_dom => sub {
push @result, $libxml->parse_string($xml);
},
libxml_dom2hash => \&libxml_test,
});
print $parser->parse_string($xml)->_DUMP;
#print $parser->parse_string($xml)->get_test->_DUMP;
@results = ();