1 |
#!/usr/bin/perl -w |
#!/usr/bin/perl -w |
2 |
|
|
|
use Test::More tests => 116; |
|
|
use Test::Exception; |
|
|
use Cwd qw/abs_path/; |
|
|
use blib; |
|
3 |
use strict; |
use strict; |
4 |
|
use blib; |
5 |
|
|
6 |
use Data::Dump qw/dump/; |
use Test::More tests => 124; |
7 |
|
|
8 |
BEGIN { |
BEGIN { |
9 |
|
use_ok( 'WebPAC::Test' ); |
10 |
use_ok( 'WebPAC::Input::ISIS' ); |
use_ok( 'WebPAC::Input::ISIS' ); |
11 |
use_ok( 'WebPAC::Input::MARC' ); |
use_ok( 'WebPAC::Input::MARC' ); |
12 |
use_ok( 'WebPAC::Input::Test' ); |
use_ok( 'WebPAC::Input::Test' ); |
13 |
} |
} |
14 |
|
|
15 |
my $debug = shift @ARGV; |
$LOG{no_progress_bar} = 1; |
|
my $no_log = $debug ? 0 : 1; |
|
16 |
|
|
17 |
ok(my $abs_path = abs_path($0), "abs_path"); |
warn "# LOG = ",dump( %LOG ); |
|
$abs_path =~ s#/[^/]*$#/#; |
|
18 |
|
|
19 |
my $module = 'WebPAC::Input::ISIS'; |
my $module = 'WebPAC::Input::ISIS'; |
20 |
diag "testing with $module"; |
diag "testing with $module"; |
21 |
|
|
22 |
throws_ok { my $input = new WebPAC::Input( ) } qr/module/, "need module"; |
throws_ok { my $input = new WebPAC::Input( %LOG ) } qr/module/, "need module"; |
23 |
ok(my $input = new WebPAC::Input( module => $module, no_log => $no_log, no_progress_bar => 1, stats => 1 ), "new $module"); |
ok(my $input = new WebPAC::Input( module => $module, stats => 1, \%LOG ), "new $module"); |
24 |
ok(my $input_lm = new WebPAC::Input( module => $module, no_log => $no_log, no_progress_bar => 1 ), "new $module"); |
ok(my $input_lm = new WebPAC::Input( module => $module, \%LOG ), "new $module"); |
25 |
|
|
26 |
throws_ok { $input->open( ) } qr/path/, "need path"; |
throws_ok { $input->open( ) } qr/path/, "need path"; |
27 |
|
|
75 |
cmp_ok($input->pos, '==', $mfn, "pos $mfn"); |
cmp_ok($input->pos, '==', $mfn, "pos $mfn"); |
76 |
push @db, $rec; |
push @db, $rec; |
77 |
ok(my $dump = $input->dump_ascii, "dump_ascii $mfn"); |
ok(my $dump = $input->dump_ascii, "dump_ascii $mfn"); |
78 |
|
# XXX test count will help us keep this test in-line :-) |
79 |
|
ok($rec->{leader}, "leader $mfn") if $rec->{leader}; |
80 |
diag $dump if ($debug); |
diag $dump if ($debug); |
81 |
} |
} |
82 |
|
|
103 |
test_start_limit($input, 3, $size, $size - 2); |
test_start_limit($input, 3, $size, $size - 2); |
104 |
test_start_limit($input, 1, $size + 2, $size); |
test_start_limit($input, 1, $size + 2, $size); |
105 |
|
|
106 |
ok(my $s = $input->stats, 'stats'); |
ok(my $s = $input->stats, "$module stats"); |
107 |
diag "stats:\n$s" if ($debug); |
diag "stats:\n$s" if ($debug); |
108 |
|
|
109 |
$module = 'WebPAC::Input::MARC'; |
$module = 'WebPAC::Input::MARC'; |
110 |
diag "testing with $module"; |
diag "testing with $module"; |
111 |
|
|
112 |
ok($input = new WebPAC::Input( module => $module, no_log => $no_log, no_progress_bar => 1 ), "new $module"); |
ok($input = new WebPAC::Input( module => $module, stats => 1, %LOG ), "new $module"); |
113 |
|
|
114 |
ok($input->open( path => "$abs_path/data/marc.iso" ), "open marc.iso"); |
ok($input->open( path => "$abs_path/data/marc.iso" ), "open marc.iso"); |
115 |
|
|
117 |
|
|
118 |
test_fetch($input, $input->size); |
test_fetch($input, $input->size); |
119 |
|
|
120 |
|
ok(my $s = $input->stats, "$module stats"); |
121 |
|
|
122 |
|
diag "stats:\n$s" if ($debug); |
123 |
# test modify_record |
# test modify_record |
124 |
$module = 'WebPAC::Input::Test'; |
$module = 'WebPAC::Input::Test'; |
125 |
ok($input = new WebPAC::Input( module => $module, no_log => $no_log, no_progress_bar => 1, debug => $debug ), "new $module"); |
ok($input = new WebPAC::Input( module => $module, %LOG ), "new $module"); |
126 |
|
|
127 |
$WebPAC::Input::Test::rec = { |
$WebPAC::Input::Test::rec = { |
128 |
'200' => [ |
'200' => [ |
194 |
modify_records => { |
modify_records => { |
195 |
900 => { |
900 => { |
196 |
'^a' => { '^e' => ' : ^e' }, |
'^a' => { '^e' => ' : ^e' }, |
197 |
} |
}, |
198 |
|
901 => { |
199 |
|
'^a' => { 'foo' => 'baz' }, |
200 |
|
}, |
201 |
}, |
}, |
202 |
), "open (with modify_records for empty subfields)"); |
), "open (with modify_records for empty subfields)"); |
203 |
|
|
210 |
'^afoo^ebar', |
'^afoo^ebar', |
211 |
'^afoo : ^ebar', |
'^afoo : ^ebar', |
212 |
); |
); |
213 |
|
|
214 |
|
test_filter(901, |
215 |
|
'^afoo^ebar', |
216 |
|
'^abaz^ebar', |
217 |
|
); |