X-Git-Url: http://git.equinoxoli.org/?p=migration-tools.git;a=blobdiff_plain;f=Equinox-Migration%2Ft%2F03-MapDrivenMARCXMLProc.t;h=e4a06a86a461bbb7fe3dfc6fdc2fd452fad368e6;hp=8c0d0f95c375a6639e310564a198bbb38911208a;hb=7aa7dfc0b3a13d24379e3e7bc407a29714b3a04f;hpb=10808752247bab3066a1bdfb69926cd4b2928ff8 diff --git a/Equinox-Migration/t/03-MapDrivenMARCXMLProc.t b/Equinox-Migration/t/03-MapDrivenMARCXMLProc.t index 8c0d0f9..e4a06a8 100644 --- a/Equinox-Migration/t/03-MapDrivenMARCXMLProc.t +++ b/Equinox-Migration/t/03-MapDrivenMARCXMLProc.t @@ -49,7 +49,6 @@ is ($rec->{tags}[0]{tag}, 999, 'tag id 4'); is ($rec->{tags}[0]{uni}{a}, "FIC DEV", 'subfield value 4'); $rec = shift @{ $mp->{data}{recs} }; is ($rec, undef, 'no more records'); -$mp->DESTROY; # with map-01, 999$a and 999$q are captured. q only exists on the second # record; the others should the placeholder value of '' @@ -63,28 +62,26 @@ is ($rec->{tags}[0]{uni}{j}, undef, 'we shouldnt have captured this, even if it $rec = shift @{ $mp->{data}{recs} }; is ($rec->{tags}[0]{uni}{a}, "MYS 2", '999$a'); is ($rec->{tags}[0]{uni}{q}, "TEST", '999$q does exist here'); -$mp->DESTROY; # map-02 adds 999$x *not* as multi, producing a fatal error on the last record -#eval { $mp = Equinox::Migration::MapDrivenMARCXMLProc->new( marcfile => 't/corpus/mdmp-0.txt', -# mapfile => 't/corpus/mdmpmap-02.txt'); -# }; -#$@ =~ /^(Multiple occurances of a non-multi field: 999x at rec 4)/; -#is ($1, "Multiple occurances of a non-multi field: 999x at rec 4", -# '999$x not declared multi, but is'); +eval { $mp = Equinox::Migration::MapDrivenMARCXMLProc->new( marcfile => 't/corpus/mdmp-0.txt', + mapfile => 't/corpus/mdmpmap-02.txt'); + }; +$@ =~ /^(Multiple occurances of a non-multi field: 999x at rec 4)/; +is ($1, "Multiple occurances of a non-multi field: 999x at rec 4", + '999$x not declared multi, but is'); # map-03 has 999$s as required, producing a fatal on record X -#$mp = Equinox::Migration::MapDrivenMARCXMLProc->new( marcfile => 't/corpus/mdmp-0.txt', -# mapfile => 't/corpus/mdmpmap-03.txt'); -#eval { $rec = $mp->parse_record }; -#is ($@, "Required mapping 999s not found in rec 1\n", '999$s removed from this record'); -#eval { $rec = $mp->parse_record }; -#is ($@, "", '999$s exists here tho'); +eval { $mp = Equinox::Migration::MapDrivenMARCXMLProc->new( marcfile => 't/corpus/mdmp-0.txt', + mapfile => 't/corpus/mdmpmap-03.txt') }; +$@ =~ /^(.+)\n/; +is ($1, "Required mapping 999s not found in rec 1", '999$s removed from this record'); # map-04 has fields in 999 and 250, and multi data $mp = Equinox::Migration::MapDrivenMARCXMLProc->new( marcfile => 't/corpus/mdmp-0.txt', mapfile => 't/corpus/mdmpmap-04.txt'); $rec = shift @{ $mp->{data}{recs} }; +is (scalar @{ $rec->{tags} }, 2, "2 tags captured"); is ($rec->{tags}[0]{tag}, 250, 'should be 250'); is ($rec->{tags}[0]{uni}{a}, "1st ed.", '999$a'); is ($rec->{tags}[1]{tag}, 999, 'should be 999'); @@ -101,7 +98,6 @@ is_deeply ($rec->{tags}[0]{multi}{'x'}, ['FICTION','FICTION2','FICTION3','FICTIO '999$x - multi'); is ($rec->{tmap}{250}, undef, 'tag map test 2a'); is_deeply ($rec->{tmap}{999}, [0], 'tag map test 2b'); -$mp->DESTROY; # map-05 is map-04 with a "no digits" filter on 999$x $mp = Equinox::Migration::MapDrivenMARCXMLProc->new( marcfile => 't/corpus/mdmp-0.txt',