#!perl -Tw use strict; use integer; use Test::More tests=>10; use File::Spec; BEGIN { use_ok( 'MARC::Batch' ); use_ok( 'MARC::Field' ); } my $filename = File::Spec->catfile( 't', 'camel.usmarc' ); my $batch = new MARC::Batch( 'MARC::File::USMARC', $filename ); isa_ok( $batch, 'MARC::Batch', 'Batch object creation' ); my $record = $batch->next(); isa_ok( $record, 'MARC::Record', 'Record object creation' ); my $f650 = $record->field('650'); isa_ok( $f650, 'MARC::Field', 'Field retrieval'); my $new = MARC::Field->new('650','','0','a','World Wide Web.'); isa_ok( $new, 'MARC::Field', 'Field creation'); my $nadds = $record->insert_fields_before($f650,$new); is( $nadds, 1, "inserted exactly one field" ); my $expected = <as_formatted,$expected,'insert_fields_before'); # make sure we get undef if the insert-before field isn't there my $not_in_record = MARC::Field->new('655','','0','a','World Wide Web','y','Stories.'); $record->warnings(); # get rid of any warnings lying around my $hopefully_undef = $record->insert_fields_before( $not_in_record, $new ); ok( !defined $hopefully_undef, "must return undef if can't find field to insert before" ); is( scalar($record->warnings), 1, "got warning about not being able to insert" );