#!/usr/bin/perl -w
use strict;
-use Test::More tests => 19;
+use Test::More tests => 51;
use Test::Exception;
use blib;
baz => [ qw/baz-input/ ],
};
-foreach my $db (qw/foo bar baz/) {
+foreach my $db (keys %$inputs) {
ok($parser->valid_database($db), "database $db");
ok($inputs->{$db}, "has known inputs");
diag "valid inputs = ", dump($inputs->{$db});
}
}
ok(! $parser->valid_database('non-existant'), "no database");
+ok(! $parser->valid_database_input('foo','non-existant'), "no database input");
-ok($parser->{source}, "source exist");
+ok(my $l = $parser->{_lookup_create_key}, "_lookup_create_key");
+ok($parser->{_lookup_create}, "_lookup_create");
+diag "_lookup_create_key = ",dump($l) if ($debug);
+foreach my $db (keys %$l) {
+ foreach my $i (keys %{$l->{$db}}) {
+ ok(defined($parser->lookup_create_rules($db,$i)), "lookup_create_rules($db/$i)");
+ my @keys = sort keys %{$l->{$db}->{$i}};
+ ok(@keys, 'have keys');
+ my @have_keys = sort $parser->have_lookup_create($db,$i);
+ ok(@have_keys, 'have_lookup_create');
+ ok(eq_array(\@have_keys, \@keys), "found all lookups");
+ }
+}
+
+ok(my $n = $parser->{_normalize_source}, "_normalize_source");
+diag "_normalize_source = ",dump($n) if ($debug);
+foreach my $db (keys %$n) {
+ foreach my $i (keys %{$n->{$db}}) {
+ ok(my $r = $parser->normalize_rules($db,$i), "normalize_source($db/$i)");
+ diag "normalize_rules($db,$i) = $r" if ($debug);
+ cmp_ok($n->{$db}->{$i}, 'eq', $r, "same");
+ }
+}
+
+ok(my $d = $parser->{depends}, "depends");
+diag "depends = ",dump($d) if ($debug);
+
+my $expected_depend = {
+ foo => {
+ "foo-input1" => {
+ bar => { "bar-input" => { "210-a-210-e" => 1, "220-a-220-e" => 1, "230-a-230-e" => 1 } },
+ baz => { "baz-input" => { "200-a" => 1 } },
+ foo => { "foo-input1" => { 11 => 1 }, "foo-input2" => { 11 => 1 } },
+ },
+ "foo-input2" => {
+ bar => { "bar-input" => { "900-x" => 1 } },
+ baz => { "baz-input" => { "900-x" => 1 } },
+ foo => { "foo-input1" => { "245-a" => 1 }, "foo-input2" => { "245-a" => 1 } },
+ },
+ },
+ bar => {
+ "bar-input" => {
+ baz => { "baz-input" => { "900-x" => 1 } },
+ foo => { "foo-input1" => { "245-a" => 1 } },
+ },
+ },
+ baz => {
+ "baz-input" => {
+ bar => { "bar-input" => { "900-x" => 1 } },
+ foo => { "foo-input2" => { "245-a" => 1 } },
+ },
+ },
+};
+
+
+is_deeply($d, $expected_depend, "depends correct");
+
+foreach my $db (keys %$d) {
+ foreach my $i (keys %{$d->{$db}}) {
+ is_deeply($d->{$db}->{$i}, $parser->depends($db,$i), "depend $db/$i");
+ }
+}
-ok($parser->parse, 'parse');