use strict; use warnings; use Test::More qw( no_plan ); use URI; use XML::Simple; use_ok( "SRU::Request" ); use_ok( "SRU::Request::Scan" ); my $url = 'http://myserver.com/myurl?operation=scan&version=1.1&scanClause=%2fdc.title%3d%22cat%22&responsePosition=3&maximumTerms=50&stylesheet=http://myserver.com/myStyle'; CONSTRUCTOR: { my $request = SRU::Request::Scan->new( version => '1.1', scanClause => '/dc.title="cat"', responsePosition => 3, maximumTerms => 50, stylesheet => 'http://myserver.com/myStyle' ); isa_ok( $request, 'SRU::Request::Scan' ); is( $request->scanClause(), '/dc.title="cat"', 'scanClause()' ); is( $request->responsePosition(), 3, 'responsePosition()' ); is( $request->maximumTerms(), 50, 'maximumTerms()' ); is( $request->stylesheet(), 'http://myserver.com/myStyle', 'stylesheet()' ); is( $request->type(), 'scan', 'type()' ); } FROM_URI: { my $uri = URI->new( $url ); my $request = SRU::Request->newFromURI( $uri ); isa_ok( $request, 'SRU::Request::Scan' ); is( $request->scanClause(), '/dc.title="cat"', 'scanClause()' ); is( $request->responsePosition(), 3, 'responsePosition()' ); is( $request->maximumTerms(), 50, 'maximumTerms()' ); is( $request->stylesheet(), 'http://myserver.com/myStyle', 'stylesheet()' ); } FROM_STRING: { my $request = SRU::Request->newFromURI( $url ); isa_ok( $request, 'SRU::Request::Scan' ); is( $request->scanClause(), '/dc.title="cat"', 'scanClause()' ); is( $request->responsePosition(), 3, 'responsePosition()' ); is( $request->maximumTerms(), 50, 'maximumTerms()' ); is( $request->stylesheet(), 'http://myserver.com/myStyle', 'stylesheet()' ); } AS_XML: { my $request = SRU::Request::Scan->newFromURI( $url ); my $xml = XMLin( $request->asXML(), KeepRoot => 1 ); is( $xml->{echoedScanRequest}{version}, '1.1', 'found version in XML' ); is( $xml->{echoedScanRequest}{scanClause}, '/dc.title="cat"', 'scanClause found in XML' ); is( $xml->{echoedScanRequest}{responsePosition}, '3', 'responsePosition found in XML' ); is( $xml->{echoedScanRequest}{maximumTerms}, '50', 'maximum terms found in XML' ); is( $xml->{echoedScanRequest}{stylesheet}, 'http://myserver.com/myStyle', 'styleSheet found in XML' ); }