The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl -Tw

use strict;

use Test::More;
use vars qw( @endings );
use File::Spec;

BEGIN {
    @endings = qw( 0a 0d 0d0a );
    plan( tests => @endings*13 + 2 );
    use_ok( 'MARC::Record' );
    use_ok( 'MARC::File::MicroLIF' );
}


foreach my $ending ( @endings ) {
    my $filename = File::Spec->catfile( 't', "lineendings-$ending.lif" );
    my $file = MARC::File::MicroLIF->in( $filename );
    isa_ok( $file, 'MARC::File::MicroLIF' );
    is( scalar $file->warnings(), 0, 'no file warnings for $filename' );

    my $record = $file->next();
    isa_ok( $record, 'MARC::Record', 'successfully decoded' );
    is( scalar $record->warnings(), 0, 'no record warnings' );

    is( scalar $record->fields(), 7, 'checking the number of fields in the record' );
    is( $record->leader(),                  '00180nam  22     2  4500', "checking $filename LDR" );
    is( $record->field('008')->as_string(), '891207s19xx    xxu           00010 eng d', "checking $filename 008" );
    is( $record->field('040')->as_string(), 'IMchF', "checking $filename 040" );
    is( $record->field('245')->as_string(), 'All about whales.', "checking $filename 245" );
    is( $record->field('260')->as_string(), 'Holiday, 1987.', "checking $filename 260" );
    is( $record->field('300')->as_string(), '[ ] p.', "checking $filename 300" );
    is( $record->field('900')->as_string(), 'ALL', "checking $filename 900" );
    is( $record->field('952')->as_string(), '20571 R ALL', "checking $filename 952" );

    $file->close();
}