1 |
#!/usr/bin/perl -w |
2 |
|
3 |
use strict; |
4 |
use blib; |
5 |
|
6 |
use Test::More; |
7 |
|
8 |
BEGIN { |
9 |
|
10 |
eval "use XBase"; |
11 |
if ( $@ ) { |
12 |
plan skip_all => "XBase required for WebPAC::Input::DBF"; |
13 |
} else { |
14 |
plan tests => 1179; |
15 |
} |
16 |
|
17 |
use_ok( 'WebPAC::Test' ); |
18 |
use_ok( 'WebPAC::Input' ); |
19 |
} |
20 |
|
21 |
my $module = 'WebPAC::Input::DBF'; |
22 |
diag "testing with $module", $debug ? ' with debug' : ''; |
23 |
|
24 |
ok(my $input = new WebPAC::Input( |
25 |
module => $module, |
26 |
no_progress_bar => 1, |
27 |
%LOG |
28 |
), "new"); |
29 |
|
30 |
ok(my $db = $input->open( |
31 |
path => "$abs_path/data/cas2000.dbf", |
32 |
input_config => { |
33 |
mapping_path => "$abs_path/conf/input/dbf/cas2000.yml", |
34 |
}, |
35 |
), "open"); |
36 |
ok(my $size = $input->size, "size"); |
37 |
|
38 |
diag "size: $size" if ($debug); |
39 |
|
40 |
ok(defined($input->{ll_db}->{_rows}), 'have ll_db->rows'); |
41 |
|
42 |
foreach my $mfn ( 1 ... $size ) { |
43 |
|
44 |
ok(defined($input->{ll_db}->{_rows}->{$mfn}), "have ll_db->_rows->$mfn"); |
45 |
|
46 |
diag "row: ", dump( $input->{ll_db}->{_rows}->{$mfn} ) if ($debug); |
47 |
|
48 |
my $rec = $input->fetch; |
49 |
|
50 |
ok($rec, "fetch $mfn"); |
51 |
|
52 |
cmp_ok($input->pos, '==', $mfn, "pos $mfn"); |
53 |
|
54 |
diag "rec: ", dump($rec), "\n" if ($debug); |
55 |
} |
56 |
|