#!perl -Tw use strict; use integer; use constant EMPTY_TESTS => 10; use constant PERLCONF_SKIPS => 6; use constant CAMEL_SKIPS => 2; use constant XPLATFORM_SKIPS => 2; use File::Spec; # the 10 is for the EMPTY: block of tests use Test::More tests=>( 2 + EMPTY_TESTS + (5*3) + CAMEL_SKIPS + PERLCONF_SKIPS + XPLATFORM_SKIPS ); BEGIN { use_ok( 'MARC::File::USMARC' ); } EMPTY: { my $marc = MARC::Record->new(); ok( defined $marc->title(), 'if data not present, title() is not undef' ); is( $marc->title(), '', 'if data not present, title() is empty string' ); ok( defined $marc->title_proper(), 'if data not present, title_proper() is not undef' ); is( $marc->title_proper(), '', 'if data not present, title_proper() is empty string' ); ok( defined $marc->author(), 'if data not present, author() is not undef' ); is( $marc->author(), '', 'if data not present, author() is empty string' ); ok( defined $marc->edition(), 'if data not present, edition() is not undef' ); is( $marc->edition(), '', 'if data not present, edition() is empty string' ); ok( defined $marc->publication_date(), 'if data not present, publication_date() is not undef' ); is( $marc->publication_date(), '', 'if data not present, publication_date() is empty string' ); } my $filename = File::Spec->catfile( 't', 'camel.usmarc' ); my $file = MARC::File::USMARC->in( $filename ); isa_ok( $file, 'MARC::File::USMARC', 'USMARC file' ); my $marc; for ( 1..PERLCONF_SKIPS ) { # Skip to the Perl conference $marc = $file->next(); isa_ok( $marc, 'MARC::Record', 'Got a record' ); } is( $marc->author, 'Perl Conference 4.0 (2000 : Monterey, Calif.)' ); is( $marc->title, 'Proceedings of the Perl Conference 4.0 : July 17-20, 2000, Monterey, California.' ); is( $marc->title_proper, 'Proceedings of the Perl Conference 4.0 :' ); is( $marc->edition, '1st ed.' ); is( $marc->publication_date, '2000.' ); for ( 1..CAMEL_SKIPS ) { # Skip to the camel $marc = $file->next(); isa_ok( $marc, 'MARC::Record', 'Got a record' ); } is( $marc->author, 'Wall, Larry.' ); is( $marc->title, 'Programming Perl / Larry Wall, Tom Christiansen & Jon Orwant.' ); is( $marc->title_proper, 'Programming Perl /' ); is( $marc->edition, '3rd ed.' ); is( $marc->publication_date, '2000.' ); for ( 1..XPLATFORM_SKIPS ) { # Skip to Cross-Platform Perl $marc = $file->next(); isa_ok( $marc, 'MARC::Record', 'Got a record' ); } is( $marc->author, 'Foster-Johnson, Eric.' ); is( $marc->title, 'Cross-platform Perl / Eric F. Johnson.' ); is( $marc->title_proper, 'Cross-platform Perl /' ); is( $marc->edition, '' ); is( $marc->publication_date, '2000.' ); $file->close;