3 |
use strict; |
use strict; |
4 |
use blib; |
use blib; |
5 |
|
|
6 |
use Test::More tests => 343; |
use Test::More tests => 348; |
7 |
|
|
8 |
BEGIN { |
BEGIN { |
9 |
use_ok( 'WebPAC::Test' ); |
use_ok( 'WebPAC::Test' ); |
485 |
test_s(qq{ marc_indicators('900',1,2) }); |
test_s(qq{ marc_indicators('900',1,2) }); |
486 |
test_s(qq{ marc('900','a', rec('200') ) }); |
test_s(qq{ marc('900','a', rec('200') ) }); |
487 |
my $marc; |
my $marc; |
488 |
ok($marc = WebPAC::Normalize::_get_marc_fields(), "_get_marc_fields"); |
ok($marc = WebPAC::Normalize::MARC::_get_marc_fields(), "_get_marc_fields"); |
489 |
diag dump( $marc ) if ($debug); |
diag dump( $marc ) if ($debug); |
490 |
|
|
491 |
is_deeply( $marc, [ |
is_deeply( $marc, [ |
496 |
test_s(qq{ marc_indicators('900',' ',9) }); |
test_s(qq{ marc_indicators('900',' ',9) }); |
497 |
test_s(qq{ marc_repeatable_subfield('900','a', rec('200') ) }); |
test_s(qq{ marc_repeatable_subfield('900','a', rec('200') ) }); |
498 |
|
|
499 |
ok($marc = WebPAC::Normalize::_get_marc_fields(), "_get_marc_fields"); |
ok($marc = WebPAC::Normalize::MARC::_get_marc_fields(), "_get_marc_fields"); |
500 |
diag dump( $marc ) if ($debug); |
diag dump( $marc ) if ($debug); |
501 |
|
|
502 |
is_deeply( $marc, [ |
is_deeply( $marc, [ |
522 |
test_s($r) if ($r); |
test_s($r) if ($r); |
523 |
} |
} |
524 |
|
|
525 |
ok(my $marc = WebPAC::Normalize::_get_marc_fields(), "_get_marc_fields"); |
ok(my $marc = WebPAC::Normalize::MARC::_get_marc_fields(), "_get_marc_fields"); |
526 |
diag dump( $marc ) if ($debug); |
diag dump( $marc ) if $debug; |
527 |
diag "expects:\n", dump($struct) if ($debug > 1); |
diag "expects:\n", dump($struct) if ($debug > 1); |
528 |
is_deeply( $marc, $struct, $msg ); |
is_deeply( $marc, $struct, $msg ); |
529 |
} |
} |
732 |
); |
); |
733 |
|
|
734 |
test_s(qq{ marc_remove('*'); }); |
test_s(qq{ marc_remove('*'); }); |
735 |
ok(! WebPAC::Normalize::_get_marc_fields(), 'marc_remove(*)'); |
ok(! WebPAC::Normalize::MARC::_get_marc_fields(), 'marc_remove(*)'); |
736 |
|
|
737 |
test_rec_rules( |
test_rec_rules( |
738 |
'marc_duplicate', |
'marc_duplicate', |
766 |
my $i = 0; |
my $i = 0; |
767 |
foreach my $v ( qw/bar baz bing bong/ ) { |
foreach my $v ( qw/bar baz bing bong/ ) { |
768 |
|
|
769 |
ok($marc = WebPAC::Normalize::_get_marc_fields( offset => $i ), |
ok($marc = WebPAC::Normalize::MARC::_get_marc_fields( offset => $i ), |
770 |
"_get_marc_fields( offset => $i )" |
"_get_marc_fields( offset => $i )" |
771 |
); |
); |
772 |
diag "marc $i = ", dump( $marc ) if ($debug); |
diag "marc $i = ", dump( $marc ) if ($debug); |
774 |
[ [ '900', ' ', ' ', 'a', 42, 'b', $v ] ], |
[ [ '900', ' ', ' ', 'a', 42, 'b', $v ] ], |
775 |
"MARC copy $i has $v", |
"MARC copy $i has $v", |
776 |
); |
); |
777 |
is_deeply(WebPAC::Normalize::_get_marc_leader(), { '06' => 42, 11 => $i }, "_get_marc_leader copy $i"); |
is_deeply(WebPAC::Normalize::MARC::_get_marc_leader(), { '06' => 42, 11 => $i }, "_get_marc_leader copy $i"); |
778 |
$i++; |
$i++; |
779 |
} |
} |
780 |
|
|
841 |
marc_fixed('000', 10, 'A'); |
marc_fixed('000', 10, 'A'); |
842 |
marc_fixed('000', 0, '0'); |
marc_fixed('000', 0, '0'); |
843 |
}); |
}); |
844 |
ok( my $m = WebPAC::Normalize::_get_marc_fields(), '_get_marc_fields'); |
ok( my $m = WebPAC::Normalize::MARC::_get_marc_fields(), '_get_marc_fields'); |
845 |
diag dump( $m ); |
diag dump( $m ); |
846 |
is_deeply( WebPAC::Normalize::_get_marc_fields(), |
is_deeply( WebPAC::Normalize::MARC::_get_marc_fields(), |
847 |
[ |
[ |
848 |
["008", "abcdef"], |
["008", "abcdef"], |
849 |
# 0....5....10 |
# 0....5....10 |
870 |
'200' => [ { |
'200' => [ { |
871 |
a => [ 'a1', 'a2' ], b => [ 'b1', 'b2' ], c => [ 'c1', 'c2' ], |
a => [ 'a1', 'a2' ], b => [ 'b1', 'b2' ], c => [ 'c1', 'c2' ], |
872 |
subfields => [ qw/a 0 b 0 a 1 b 1 c 0 c 1/ ], |
subfields => [ qw/a 0 b 0 a 1 b 1 c 0 c 1/ ], |
873 |
|
i1 => '0', i2 => '1', |
874 |
}, { |
}, { |
875 |
a => [ 'a3', 'a4', 'a5' ], b => 'b3', c => 'c3', |
a => [ 'a3', 'a4', 'a5' ], b => 'b3', c => 'c3', |
876 |
subfields => [ qw/a 0 a 1 b 0 c 0 a 2/ ], |
subfields => [ qw/a 0 a 1 b 0 c 0 a 2/ ], |
893 |
ok( frec_ne( '200' => $sf, '200' => 'c' ), "frec_ne 200 $sf == 200 c"); |
ok( frec_ne( '200' => $sf, '200' => 'c' ), "frec_ne 200 $sf == 200 c"); |
894 |
} |
} |
895 |
|
|
896 |
# marc_template |
test_rule( 'rec(200,i1)', $rec, qq{ rec(200,'i1') }, [ '0' ] ); |
897 |
|
test_rule( 'rec(200,i2)', $rec, qq{ rec(200,'i2') }, [ '1' ] ); |
898 |
|
|
899 |
|
my $hash = { a => '[a]', 'b' => '[b]', subfields => [ 'a', 0, 'b', 0 ] }; |
900 |
|
is_deeply([ _pack_subfields_hash( $hash ) ], [ '[a]', '[b]' ], '_pack_subfields_hash' ); |
901 |
|
ok( $hash->{subfields}, 'subfields exist' ); |
902 |
|
cmp_ok( _pack_subfields_hash( $hash, 1 ), 'eq', '^a[a]^b[b]', '_pack_subfields_hash' ); |
903 |
|
ok( $hash->{subfields}, 'subfields exist' ); |
904 |
|
|
|
test_rec_rules( |
|
|
'marc_template', |
|
|
{ |
|
|
'225' => [{ |
|
|
'a' => 'a-1-1', |
|
|
'i' => 'i-1-1', |
|
|
'v' => 'v-1-1', |
|
|
'w' => 'w-1-1', |
|
|
'h' => 'h-1-1', |
|
|
'x' => 'x-1-1', |
|
|
},{ |
|
|
'a' => 'a-2-1', |
|
|
'v' => 'v-2-1', |
|
|
'i' => 'i-2-1', |
|
|
},{ |
|
|
'a' => 'a-3-1', |
|
|
'i' => 'i-3-1', |
|
|
'v' => 'v-3-1', |
|
|
},{ |
|
|
'a' => 'a-4-1', |
|
|
'v' => 'v-4-1', |
|
|
'i' => 'i-4-1', |
|
|
'w' => 'w-4-1', |
|
|
}], |
|
|
}, |
|
|
qq{ |
|
|
marc_template( |
|
|
from => 225, to => 440, |
|
|
subfields_rename => [ |
|
|
'a' => 'a', |
|
|
'x' => 'x', |
|
|
'v' => 'v', |
|
|
'h' => 'n', |
|
|
'i' => 'p', |
|
|
'w' => 'v', |
|
|
], |
|
|
marc_template => [ |
|
|
'a, |x ; |v. |n, |p ; |v', |
|
|
'a ; |v. |p ; |v', |
|
|
'a. |p ; |v', |
|
|
], |
|
|
); |
|
|
}, |
|
|
[ |
|
|
[440, " ", " ", "a", "a-1-1", "x", "x-1-1", "v", "v-1-1", "n", "h-1-1", "p", "i-1-1", "v", "w-1-1", ], |
|
|
[440, " ", " ", "a", "a-2-1", "p", "i-2-1", "v", "v-2-1"], |
|
|
[440, " ", " ", "a", "a-3-1", "p", "i-3-1", "v", "v-3-1"], |
|
|
[440, " ", " ", "a", "a-4-1", "v", "v-4-1", "p", "i-4-1", "v", "w-4-1"], |
|
|
], |
|
|
); |
|
905 |
} |
} |
906 |
|
|