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



#Tests for field 880 and for subfield 6



use strict;

use warnings;

use File::Spec;

use Test::More tests=>6;



BEGIN { use_ok( 'MARC::File::USMARC' ); }

BEGIN { use_ok( 'MARC::Lint' ); }



FROM_TEXT: {

    my $marc = MARC::Record->new();

    isa_ok( $marc, 'MARC::Record', 'MARC record' );



    $marc->leader("00000nam  22002538a 4500"); 



    my $nfields = $marc->add_fields(

        ['001', 'ttt07000001 '],

        ['003', 'TEST '],

        ['008', '070520s2007    ilu           000 0 eng d',

        ],

        ['040', "", "",

            a => 'TEST',

            c => 'TEST',

         ],

        ['050', "", "4",

            a => 'RZ999',

            b => '.J66 2007',

         ],

        ['082', "0", "4",

            a => '615.8/9',

            2 => '22'

         ],

        [100, "1","", 

            a => "Jones, John.",

        ],

        [245, "1","0",

            6 => "880-02",

            a => "Test 880.",

        ],

        [260, "", "",

            a => "Mount Morris, Ill. :",

            b => "B. Baldus,",

            c => "2007.",

            ],

        [300, "", "",

            a => "1 v. ;",

            c => "23 cm.",

        ],

        [880, "1", "0",

            6 => '245-02/$1',

            a => "<Title in CJK script>.",

        ],

    );

    is( $nfields, 11, "All the fields added OK" );



    my @expected = (

#        (undef),

        #q{},

    );



    my $lint = new MARC::Lint;

    isa_ok( $lint, 'MARC::Lint' );



    $lint->check_record( $marc );

    my @warnings = $lint->warnings;

    while ( @warnings ) {

        my $expected = shift @expected;

        my $actual = shift @warnings;



        is( $actual, $expected, "Checking expected messages" );

    }

    is( scalar @expected, 0, "All expected messages exhausted." );

}