--- trunk/t/2-parse.t 2006/09/24 17:25:04 686 +++ trunk/t/2-parse.t 2006/09/25 13:24:09 703 @@ -1,7 +1,7 @@ #!/usr/bin/perl -w use strict; -use Test::More tests => 8; +use Test::More tests => 26; use Test::Exception; use blib; @@ -29,8 +29,67 @@ my $parser = new WebPAC::Parser( config => new WebPAC::Config( path => $config_path ), base_path => $abs_path, + debug => $debug, ), "new"); -ok($parser->{source}, "source exist"); +my $inputs = { + foo => [ qw/foo-input1 foo-input2/ ], + bar => [ qw/bar-input/ ], + baz => [ qw/baz-input/ ], +}; + +foreach my $db (keys %$inputs) { + ok($parser->valid_database($db), "database $db"); + ok($inputs->{$db}, "has known inputs"); + diag "valid inputs = ", dump($inputs->{$db}); + foreach my $i (@{ $inputs->{$db} }) { + ok($parser->valid_database_input($db,$i), "input $i"); + } +} +ok(! $parser->valid_database('non-existant'), "no database"); +ok(! $parser->valid_database_input('foo','non-existant'), "no database input"); + +ok(my $l = $parser->{_lookup_create}, "_lookup_create"); +diag "_lookup_create = ",dump($l); -ok($parser->parse, 'parse'); +ok(my $n = $parser->{_normalize_source}, "_normalize_source"); +diag "_normalize_source = ",dump($n); + +ok(my $d = $parser->{depends}, "depends"); +diag "depends = ",dump($d); + +my $expected_depend = { + foo => { + "foo-input1" => { + bar => { "bar-input" => { "200-a-200-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"); + } +}