/[webpac2]/trunk/t/2-parse.t
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /trunk/t/2-parse.t

Parent Directory Parent Directory | Revision Log Revision Log


Revision 705 - (hide annotations)
Mon Sep 25 13:46:36 2006 UTC (17 years, 7 months ago) by dpavlin
File MIME type: application/x-troff
File size: 3008 byte(s)
 r1004@llin:  dpavlin | 2006-09-25 15:44:23 +0200
 test lookup_create_rules

1 dpavlin 686 #!/usr/bin/perl -w
2    
3     use strict;
4 dpavlin 705 use Test::More tests => 36;
5 dpavlin 686 use Test::Exception;
6     use blib;
7    
8     use Data::Dump qw/dump/;
9     use Cwd qw/abs_path/;
10     use YAML qw/LoadFile/;
11    
12     BEGIN {
13     use_ok( 'WebPAC::Parser' );
14     use_ok( 'WebPAC::Config' );
15     }
16    
17     my $debug = shift @ARGV;
18    
19     ok(my $abs_path = abs_path($0), "abs_path");
20     $abs_path =~ s#/[^/]*$#/#;
21    
22     my $config_path = "$abs_path/conf/test.yml";
23    
24     ok(-e $config_path, "$config_path exists");
25    
26     throws_ok { new WebPAC::Parser( no_log => 1 ) } qr/WebPAC::Config/, "new without config";
27    
28     ok(
29     my $parser = new WebPAC::Parser(
30     config => new WebPAC::Config( path => $config_path ),
31     base_path => $abs_path,
32 dpavlin 687 debug => $debug,
33 dpavlin 686 ), "new");
34    
35 dpavlin 689 my $inputs = {
36     foo => [ qw/foo-input1 foo-input2/ ],
37     bar => [ qw/bar-input/ ],
38     baz => [ qw/baz-input/ ],
39     };
40    
41 dpavlin 692 foreach my $db (keys %$inputs) {
42 dpavlin 689 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");
47     }
48     }
49     ok(! $parser->valid_database('non-existant'), "no database");
50 dpavlin 691 ok(! $parser->valid_database_input('foo','non-existant'), "no database input");
51 dpavlin 689
52 dpavlin 692 ok(my $l = $parser->{_lookup_create}, "_lookup_create");
53 dpavlin 705 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");
58     }
59     }
60     }
61 dpavlin 686
62 dpavlin 692 ok(my $n = $parser->{_normalize_source}, "_normalize_source");
63 dpavlin 705 diag "_normalize_source = ",dump($n) if ($debug);
64 dpavlin 692
65 dpavlin 698 ok(my $d = $parser->{depends}, "depends");
66 dpavlin 705 diag "depends = ",dump($d) if ($debug);
67 dpavlin 698
68     my $expected_depend = {
69     foo => {
70     "foo-input1" => {
71 dpavlin 704 bar => { "bar-input" => { "210-a-210-e" => 1, "220-a-220-e" => 1, "230-a-230-e" => 1 } },
72 dpavlin 703 baz => { "baz-input" => { "200-a" => 1 } },
73     foo => { "foo-input1" => { 11 => 1 }, "foo-input2" => { 11 => 1 } },
74 dpavlin 698 },
75     "foo-input2" => {
76 dpavlin 703 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 } },
79 dpavlin 698 },
80     },
81 dpavlin 701 bar => {
82     "bar-input" => {
83 dpavlin 703 baz => { "baz-input" => { "900-x" => 1 } },
84     foo => { "foo-input1" => { "245-a" => 1 } },
85 dpavlin 701 },
86     },
87     baz => {
88     "baz-input" => {
89 dpavlin 703 bar => { "bar-input" => { "900-x" => 1 } },
90     foo => { "foo-input2" => { "245-a" => 1 } },
91 dpavlin 701 },
92     },
93 dpavlin 698 };
94    
95    
96     is_deeply($d, $expected_depend, "depends correct");
97    
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");
101     }
102     }
103 dpavlin 705

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26