use strict; use warnings; use Test::More qw( no_plan ); use URI; use XML::Simple; use_ok( 'SRU::Request::Explain' ); my $url = 'http://myserver.com/myurl?operation=explain&version=1.0&recordPacking=xml&stylesheet=http://www.example.com/style.xsl&extraRequestData=123'; CONSTRUCTOR: { my $request = SRU::Request::Explain->new( version => '1.0', recordPacking => 'xml', stylesheet => 'http://www.example.com/style.xsl' ); is( $request->version(), '1.0', 'version()' ); is( $request->recordPacking(), 'xml', 'recordPacking()' ); is( $request->stylesheet(), 'http://www.example.com/style.xsl', 'stylesheet()'); } FROM_URI: { my $uri = URI->new( $url ); my $request = SRU::Request->newFromURI( $uri ); is( $request->version(), '1.0', 'version()' ); is( $request->recordPacking(), 'xml', 'recordPacking()' ); is( $request->stylesheet(), 'http://www.example.com/style.xsl', 'stylesheet()'); } DEFAULT_RESPONSE: { my $request = SRU::Request->newFromURI( 'http://myserver.com/myurl' ); isa_ok( $request, 'SRU::Request::Explain' ); } FROM_STRING: { my $request = SRU::Request->newFromURI( $url ); is( $request->version(), '1.0', 'version()' ); is( $request->recordPacking(), 'xml', 'recordPacking()' ); is( $request->stylesheet(), 'http://www.example.com/style.xsl', 'stylesheet()'); } XML: { my $request = SRU::Request->newFromURI( $url ); my $xml = XMLin( $request->asXML(), KeepRoot => 1 ); is( $xml->{echoedExplainRequest}{version}, '1.0', 'got version in XML' ); is( $xml->{echoedExplainRequest}{recordPacking}, 'xml', 'got recordPacking in XML' ); is( $xml->{echoedExplainRequest}{stylesheet}, 'http://www.example.com/style.xsl', 'got stylesheet in XML' ); }