1 |
dpavlin |
869 |
#!/usr/bin/perl -w |
2 |
|
|
|
3 |
dpavlin |
949 |
use strict; |
4 |
dpavlin |
869 |
use blib; |
5 |
|
|
|
6 |
dpavlin |
1116 |
use Test::More; |
7 |
dpavlin |
869 |
|
8 |
|
|
BEGIN { |
9 |
dpavlin |
1116 |
|
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 |
dpavlin |
869 |
} |
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 |
dpavlin |
949 |
%LOG |
28 |
dpavlin |
869 |
), "new"); |
29 |
|
|
|
30 |
|
|
ok(my $db = $input->open( |
31 |
|
|
path => "$abs_path/data/cas2000.dbf", |
32 |
|
|
input_config => { |
33 |
dpavlin |
870 |
mapping_path => "$abs_path/conf/input/dbf/cas2000.yml", |
34 |
dpavlin |
869 |
}, |
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 |
|
|
|