4 use Test::More tests => 36;
8 use Data::Dump qw/dump/;
10 use YAML qw/LoadFile/;
13 use_ok( 'WebPAC::Parser' );
14 use_ok( 'WebPAC::Config' );
17 my $debug = shift @ARGV;
19 ok(my $abs_path = abs_path($0), "abs_path");
20 $abs_path =~ s#/[^/]*$#/#;
22 my $config_path = "$abs_path/conf/test.yml";
24 ok(-e $config_path, "$config_path exists");
26 throws_ok { new WebPAC::Parser( no_log => 1 ) } qr/WebPAC::Config/, "new without config";
29 my $parser = new WebPAC::Parser(
30 config => new WebPAC::Config( path => $config_path ),
31 base_path => $abs_path,
36 foo => [ qw/foo-input1 foo-input2/ ],
37 bar => [ qw/bar-input/ ],
38 baz => [ qw/baz-input/ ],
41 foreach my $db (keys %$inputs) {
42 ok($parser->valid_database($db), "database $db");
43 ok($inputs->{$db}, "has known inputs");
44 diag "valid inputs = ", dump($inputs->{$db});
45 foreach my $i (@{ $inputs->{$db} }) {
46 ok($parser->valid_database_input($db,$i), "input $i");
49 ok(! $parser->valid_database('non-existant'), "no database");
50 ok(! $parser->valid_database_input('foo','non-existant'), "no database input");
52 ok(my $l = $parser->{_lookup_create}, "_lookup_create");
53 diag "_lookup_create = ",dump($l) if ($debug);
54 foreach my $db (keys %$l) {
55 foreach my $i (keys %{$l->{$db}}) {
56 foreach my $k (keys %{$l->{$db}->{$i}}) {
57 ok(defined($parser->lookup_create_rules($db,$i)->{$k}), "have $db/$i/$k");
62 ok(my $n = $parser->{_normalize_source}, "_normalize_source");
63 diag "_normalize_source = ",dump($n) if ($debug);
65 ok(my $d = $parser->{depends}, "depends");
66 diag "depends = ",dump($d) if ($debug);
68 my $expected_depend = {
71 bar => { "bar-input" => { "210-a-210-e" => 1, "220-a-220-e" => 1, "230-a-230-e" => 1 } },
72 baz => { "baz-input" => { "200-a" => 1 } },
73 foo => { "foo-input1" => { 11 => 1 }, "foo-input2" => { 11 => 1 } },
76 bar => { "bar-input" => { "900-x" => 1 } },
77 baz => { "baz-input" => { "900-x" => 1 } },
78 foo => { "foo-input1" => { "245-a" => 1 }, "foo-input2" => { "245-a" => 1 } },
83 baz => { "baz-input" => { "900-x" => 1 } },
84 foo => { "foo-input1" => { "245-a" => 1 } },
89 bar => { "bar-input" => { "900-x" => 1 } },
90 foo => { "foo-input2" => { "245-a" => 1 } },
96 is_deeply($d, $expected_depend, "depends correct");
98 foreach my $db (keys %$d) {
99 foreach my $i (keys %{$d->{$db}}) {
100 is_deeply($d->{$db}->{$i}, $parser->depends($db,$i), "depend $db/$i");