/[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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 698 - (show annotations)
Mon Sep 25 11:14:53 2006 UTC (17 years, 7 months ago) by dpavlin
File MIME type: application/x-troff
File size: 2400 byte(s)
 r990@llin:  dpavlin | 2006-09-25 13:12:42 +0200
 new depends method to track dependencies, input in most places can be input name or
 hash with key 'name' which will be used as input (for exaple, from configuration file),
 database and input names will have correctly stripped quotes,
 begin removal of old lookup support

1 #!/usr/bin/perl -w
2
3 use strict;
4 use Test::More tests => 26;
5 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 debug => $debug,
33 ), "new");
34
35 my $inputs = {
36 foo => [ qw/foo-input1 foo-input2/ ],
37 bar => [ qw/bar-input/ ],
38 baz => [ qw/baz-input/ ],
39 };
40
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");
47 }
48 }
49 ok(! $parser->valid_database('non-existant'), "no database");
50 ok(! $parser->valid_database_input('foo','non-existant'), "no database input");
51
52 ok(my $l = $parser->{_lookup_create}, "_lookup_create");
53 diag "_lookup_create = ",dump($l);
54
55 ok(my $n = $parser->{_normalize_source}, "_normalize_source");
56 diag "_normalize_source = ",dump($n);
57
58 ok(my $d = $parser->{depends}, "depends");
59 diag "depends = ",dump($d);
60
61 my $expected_depend = {
62 foo => {
63 "foo-input1" => {
64 bar => { "bar-input" => "200-a-200-e" },
65 baz => { "baz-input" => "200-a" },
66 foo => { "foo-input1" => 11, "foo-input2" => 11 },
67 },
68 "foo-input2" => {
69 bar => { "bar-input" => "200-a-200-e" },
70 baz => { "baz-input" => "200-a" },
71 foo => { "foo-input1" => 11, "foo-input2" => 11 },
72 },
73 },
74 bar => { "bar-input" => { foo => { "foo-input1" => "245-a" } } },
75 baz => { "baz-input" => { baz => { "baz-input" => "900-x" } } },
76 };
77
78
79 is_deeply($d, $expected_depend, "depends correct");
80
81 foreach my $db (keys %$d) {
82 foreach my $i (keys %{$d->{$db}}) {
83 is_deeply($d->{$db}->{$i}, $parser->depends($db,$i), "depend $db/$i");
84 }
85 }

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26