use Test::More no_plan;
use strict;
use warnings;
use_ok( 'Net::OAI::Harvester' );
my $h = Net::OAI::Harvester->new(
baseURL => 'http://memory.loc.gov/cgi-bin/oai2_0'
);
isa_ok( $h, 'Net::OAI::Harvester', 'new()' );
my $l = $h->listRecords( metadataPrefix => 'oai_dc', set => 'papr' );
isa_ok( $l, 'Net::OAI::ListRecords', 'listRecords()' );
ok( ! $l->errorCode(), 'errorCode()' );
ok( ! $l->errorString(), 'errorString()' );
while ( my $r = $l->next() ) {
isa_ok( $r, 'Net::OAI::Record' );
my $header = $r->header();
isa_ok( $header, 'Net::OAI::Record::Header' );
ok( $header->identifier(),
'header identifier defined: '.$header->identifier() );
my $metadata = $r->metadata();
isa_ok( $metadata, 'Net::OAI::Record::OAI_DC' );
ok( $metadata->title(),
'metadata title defined: '.$metadata->title() );
}
## resumption token
my $r = $l->resumptionToken();
isa_ok( $r, 'Net::OAI::ResumptionToken' );
ok( $r->token(), 'token() '.$r->token() );
## these may not return stuff but we must be able to call the methods
eval { $r->expirationDate() };
ok( ! $@, 'expirationDate()' );
eval { $r->completeListSize() };
ok( ! $@, 'completeListSize()' );
eval { $r->cursor() };
ok( ! $@, 'cursor()' );
use lib qw( t ); ## so harvester will be able to locate our handler
$l = $h->listRecords(
metadataPrefix => 'oai_dc',
metadataHandler => 'MyHandler',
set => 'papr'
);
isa_ok( $l, 'Net::OAI::ListRecords', 'listRecords() with metadataHandler' );
while ( my $r = $l->next() ) {
isa_ok( $r, 'Net::OAI::Record' );
my $header = $r->header();
isa_ok( $header, 'Net::OAI::Record::Header' );
my $metadata = $r->metadata();
isa_ok( $metadata, 'MyHandler' );
}