2 |
|
|
3 |
use strict; |
use strict; |
4 |
|
|
5 |
use Test::More tests => 309; |
use Test::More tests => 332; |
6 |
use Test::Exception; |
use Test::Exception; |
7 |
use Cwd qw/abs_path/; |
use Cwd qw/abs_path/; |
8 |
use blib; |
use blib; |
194 |
cmp_ok( join('', suffix('xy', 'cd') ), 'eq', 'cdxy', 'suffix'); |
cmp_ok( join('', suffix('xy', 'cd') ), 'eq', 'cdxy', 'suffix'); |
195 |
cmp_ok( join('', surround('->', '<-', 'a','b','c') ), 'eq', '->a<-->b<-->c<-', 'surround'); |
cmp_ok( join('', surround('->', '<-', 'a','b','c') ), 'eq', '->a<-->b<-->c<-', 'surround'); |
196 |
|
|
197 |
|
# count |
198 |
|
my @el; |
199 |
|
for my $i ( 0 .. 10 ) { |
200 |
|
cmp_ok( count( @el ), '==', $i, "count($i)"); |
201 |
|
push @el, "element $i"; |
202 |
|
} |
203 |
|
|
204 |
# lookups |
# lookups |
205 |
|
|
206 |
throws_ok { _set_load_ds() } qr/CODE/, 'empty _set_load_ds()'; |
throws_ok { _set_load_row() } qr/CODE/, 'empty _set_load_row()'; |
207 |
|
|
208 |
ok(_set_load_ds(sub { |
ok(_set_load_row(sub { |
209 |
my ($database,$input,$mfn) = @_; |
my ($database,$input,$mfn) = @_; |
210 |
diag "load_ds( $database, $input, $mfn )"; |
diag "load_row( $database, $input, $mfn )" if ($debug); |
211 |
cmp_ok( $#_, '==', 2, 'have 3 arguments'); |
cmp_ok( $#_, '==', 2, 'have 3 arguments'); |
212 |
ok($database, '_load_ds database'); |
ok($database, '_load_row database'); |
213 |
ok($input, '_load_ds input'); |
ok($input, '_load_row input'); |
214 |
ok($mfn, '_load_ds mfn'); |
ok($mfn, '_load_row mfn'); |
215 |
return { |
return { |
216 |
'900' => [{ x => '900x-' . $mfn , y => '900y-' . $mfn }], |
'900' => [{ x => '900x-' . $mfn , y => '900y-' . $mfn }], |
217 |
} |
} |
218 |
|
|
219 |
}), '_set_load_ds'); |
}), '_set_load_row'); |
220 |
|
|
221 |
my @v = qw/foo bar baz aaa bbb ccc ddd/; |
my @v = qw/foo bar baz aaa bbb ccc ddd/; |
222 |
|
|
236 |
); |
); |
237 |
|
|
238 |
ok(my $l = WebPAC::Normalize::_get_lookup(), '_get_lookup'); |
ok(my $l = WebPAC::Normalize::_get_lookup(), '_get_lookup'); |
239 |
diag "_get_lookup = ", dump($l); |
diag "_get_lookup = ", dump($l) if ($debug); |
240 |
|
|
241 |
my @lookup; |
my @lookup; |
242 |
|
|
243 |
ok(my @lookup = lookup( |
ok(@lookup = lookup( |
244 |
sub { |
sub { |
245 |
diag "in show"; |
diag "in show" if ($debug); |
246 |
rec('900','x'); |
rec('900','x'); |
247 |
}, |
}, |
248 |
'db','input','key', |
'db','input','key', |
261 |
} |
} |
262 |
|
|
263 |
ok(my $l = WebPAC::Normalize::_get_lookup(), '_get_lookup'); |
ok(my $l = WebPAC::Normalize::_get_lookup(), '_get_lookup'); |
264 |
diag "_get_lookup = ", dump($l); |
diag "_get_lookup = ", dump($l) if ($debug); |
265 |
|
|
266 |
is_deeply( $l, { |
is_deeply( $l, { |
267 |
db => { |
db => { |
281 |
|
|
282 |
####### |
####### |
283 |
|
|
284 |
diag "lookup_hash1 = ", dump($lookup_hash1); |
diag "lookup_hash1 = ", dump($lookup_hash1) if ($debug); |
285 |
ok(_set_lookup( $lookup_hash1 ), '_set_lookup $lookup_hash1'); |
ok(_set_lookup( $lookup_hash1 ), '_set_lookup $lookup_hash1'); |
286 |
|
|
287 |
throws_ok { _set_load_ds() } qr/CODE/, 'empty _set_load_ds()'; |
throws_ok { _set_load_row() } qr/CODE/, 'empty _set_load_row()'; |
288 |
|
|
289 |
ok(_set_load_ds(sub { |
ok(_set_load_row(sub { |
290 |
my ($database,$input,$mfn) = @_; |
my ($database,$input,$mfn) = @_; |
291 |
diag "load_ds( $database, $input, $mfn )"; |
diag "load_row( $database, $input, $mfn )"; |
292 |
cmp_ok( $#_, '==', 2, 'have 3 arguments'); |
cmp_ok( $#_, '==', 2, 'have 3 arguments'); |
293 |
ok($database, 'database'); |
ok($database, 'database'); |
294 |
ok($input, 'input'); |
ok($input, 'input'); |
295 |
ok($mfn, 'mfn'); |
ok($mfn, 'mfn'); |
296 |
|
|
297 |
}), '_set_load_ds'); |
}), '_set_load_row'); |
298 |
|
|
299 |
|
|
300 |
# cmp_ok(lookup( |
# cmp_ok(lookup( |
732 |
[ '901', ' ', ' ', 'b', 'bar', 'c', 'baz' ], |
[ '901', ' ', ' ', 'b', 'bar', 'c', 'baz' ], |
733 |
], |
], |
734 |
); |
); |
735 |
|
|
736 |
|
test_s(qq{ marc_remove('*'); }); |
737 |
|
ok(! WebPAC::Normalize::_get_marc_fields(), 'marc_remove(*)'); |
738 |
|
|
739 |
test_rec_rules( |
test_rec_rules( |
740 |
'marc_duplicate', |
'marc_duplicate', |
741 |
{ '200' => [{ a => 42, b => 'bar', c => 'baz', d => 'bing', e => 'bong' }] }, |
{ '200' => [{ a => 42, b => 'bar', c => 'baz', d => 'bing', e => 'bong' }] }, |
742 |
qq{ |
qq{ |
743 |
|
marc_leader('06',42); |
744 |
|
marc_leader('11',0); |
745 |
marc('900', 'a', rec('200','a') ); |
marc('900', 'a', rec('200','a') ); |
746 |
marc('900', 'b', rec('200','b') ); |
marc('900', 'b', rec('200','b') ); |
747 |
marc_duplicate; |
marc_duplicate; |
748 |
|
marc_leader('11',1); |
749 |
marc_remove('900','b'); |
marc_remove('900','b'); |
750 |
marc('900', 'b', rec('200','c') ); |
marc('900', 'b', rec('200','c') ); |
751 |
marc_duplicate; |
marc_duplicate; |
752 |
|
marc_leader('11',2); |
753 |
marc_remove('900','b'); |
marc_remove('900','b'); |
754 |
marc('900', 'b', rec('200','d') ); |
marc('900', 'b', rec('200','d') ); |
755 |
marc_duplicate; |
marc_duplicate; |
756 |
|
marc_leader('11',3); |
757 |
marc_remove('900','b'); |
marc_remove('900','b'); |
758 |
marc('900', 'b', rec('200','e') ); |
marc('900', 'b', rec('200','e') ); |
759 |
}, |
}, |
763 |
], |
], |
764 |
); |
); |
765 |
|
|
766 |
|
cmp_ok( marc_count(), '==', 3, 'marc_count' ); |
767 |
|
|
768 |
my $i = 0; |
my $i = 0; |
769 |
foreach my $v ( qw/bar baz bing bong/ ) { |
foreach my $v ( qw/bar baz bing bong/ ) { |
770 |
|
|
776 |
[ [ '900', ' ', ' ', 'a', 42, 'b', $v ] ], |
[ [ '900', ' ', ' ', 'a', 42, 'b', $v ] ], |
777 |
"MARC copy $i has $v", |
"MARC copy $i has $v", |
778 |
); |
); |
779 |
|
is_deeply(WebPAC::Normalize::_get_marc_leader(), { '06' => 42, 11 => $i }, "_get_marc_leader copy $i"); |
780 |
$i++; |
$i++; |
781 |
} |
} |
782 |
|
|