From d5dd953f52123bc3c96bd48371f1fae219e8a2d4 Mon Sep 17 00:00:00 2001 From: Shawn Boyette Date: Mon, 27 Apr 2009 05:06:58 +0000 Subject: [PATCH] testing changes --- Equinox-Migration/t/03-MapDrivenMARCXMLProc.t | 42 +++++++++++++++++++++++++ Equinox-Migration/t/corpus/mdmp-0.txt | 4 ++- Equinox-Migration/t/corpus/mdmpmap-02.txt | 2 + Equinox-Migration/t/corpus/mdmpmap-03.txt | 3 ++ 4 files changed, 50 insertions(+), 1 deletions(-) create mode 100644 Equinox-Migration/t/corpus/mdmpmap-02.txt create mode 100644 Equinox-Migration/t/corpus/mdmpmap-03.txt diff --git a/Equinox-Migration/t/03-MapDrivenMARCXMLProc.t b/Equinox-Migration/t/03-MapDrivenMARCXMLProc.t index 5e1f21d..eeffcce 100644 --- a/Equinox-Migration/t/03-MapDrivenMARCXMLProc.t +++ b/Equinox-Migration/t/03-MapDrivenMARCXMLProc.t @@ -50,3 +50,45 @@ is ($rec->{tags}[0]{tag}, 999, 'tag id 4'); is ($rec->{tags}[0]{uni}{a}, "FIC DEV", 'subfield value 4'); $rec = $mp->parse_record; is ($rec, 0, 'no more records'); + +# with map-01, 999$a and 999$q are captured. q only exists on the second +# record; the others should the placeholder value of '' +$mp = Equinox::Migration::MapDrivenMARCXMLProc->new( marcfile => 't/corpus/mdmp-0.txt', + mapfile => 't/corpus/mdmpmap-01.txt', + sample => [ 999 ] + ); +$rec = $mp->parse_record; +is ($rec->{tags}[0]{uni}{a}, "MYS DEM", '999$a'); +is ($rec->{tags}[0]{uni}{q}, "", '999$q doesnt exist here'); +is ($rec->{tags}[0]{uni}{j}, undef, 'we shouldnt have captured this, even if it does exist'); +$rec = $mp->parse_record; +is ($rec->{tags}[0]{uni}{a}, "MYS 2", '999$a'); +is ($rec->{tags}[0]{uni}{q}, "TEST", '999$q does exist here'); +# process other two records and check the unmapped data stuffs +$rec = $mp->parse_record; +$rec = $mp->parse_record; +my $unmapped = $mp->{data}{umap}; +is (defined $unmapped->{999}, 1); +is (defined $unmapped->{999}{x}, 1); +is ($unmapped->{999}{x}{value}, 'MYSTERY', 'Should be the first seen value'); +is ($unmapped->{999}{x}{count}, 7, 'One real in each record, plus 3 synthetic in last rec'); +is ($unmapped->{999}{x}{rcnt}, 4, 'Occurs in all records'); +is ($unmapped->{999}{s}{rcnt}, 3, 'Was removed from one record'); + +# map-02 adds 999$x *not* as multi, producing a fatal error on the last record +$mp = Equinox::Migration::MapDrivenMARCXMLProc->new( marcfile => 't/corpus/mdmp-0.txt', + mapfile => 't/corpus/mdmpmap-02.txt'); +$rec = $mp->parse_record; +$rec = $mp->parse_record; +$rec = $mp->parse_record; +eval { $rec = $mp->parse_record }; +is ($@, "Multiple occurances of a non-multi field: 999x at rec 4\n", '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'); + diff --git a/Equinox-Migration/t/corpus/mdmp-0.txt b/Equinox-Migration/t/corpus/mdmp-0.txt index 6b4b099..bbf31d1 100644 --- a/Equinox-Migration/t/corpus/mdmp-0.txt +++ b/Equinox-Migration/t/corpus/mdmp-0.txt @@ -63,7 +63,6 @@ 8 $25.00 Y - Y BOOK 11/22/2002 MYSTERY @@ -326,6 +325,9 @@ BOOK 11/22/2002 FICTION + FICTION2 + FICTION3 + FICTION4 ADULT diff --git a/Equinox-Migration/t/corpus/mdmpmap-02.txt b/Equinox-Migration/t/corpus/mdmpmap-02.txt new file mode 100644 index 0000000..7f49973 --- /dev/null +++ b/Equinox-Migration/t/corpus/mdmpmap-02.txt @@ -0,0 +1,2 @@ +call_num 999 a +unmulti_field 999 x diff --git a/Equinox-Migration/t/corpus/mdmpmap-03.txt b/Equinox-Migration/t/corpus/mdmpmap-03.txt new file mode 100644 index 0000000..678d1e0 --- /dev/null +++ b/Equinox-Migration/t/corpus/mdmpmap-03.txt @@ -0,0 +1,3 @@ +call_num 999 a +req_field 999 s m:required +multi_field 999 x m:multi -- 1.7.2.5