r1399@llin: dpavlin | 2007-10-31 11:19:39 +0100
[webpac2] / t / 1-validate.t
index 1dc8cba..bbbc3e9 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/perl -w
 
 use strict;
-use Test::More tests => 51;
+use Test::More tests => 54;
 use Test::Exception;
 use blib;
 
@@ -17,11 +17,14 @@ my $debug = shift @ARGV;
 ok(my $abs_path = abs_path($0), "abs_path");
 $abs_path =~ s#/[^/]*$#/#;
 
-my $validate_path = "$abs_path/data/validate_test";
-$validate_path =~ s#//+#/#g;
-
 ok(my $v = new WebPAC::Validate(
-       path => $validate_path,
+       debug => $debug,
+), "new witout path");
+
+ok( ! $v->{rules}, 'no path' );
+
+ok($v = new WebPAC::Validate(
+       path => "$abs_path/data/validate_test",
        debug => $debug,
 ), "new with path");
 
@@ -34,18 +37,22 @@ is_deeply( $v->{rules}, {
        '903' => [ 'a', 'b', 'c' ],
        '904' => [ 'a' ],
        '905' => [ 'a*' ],
-}, 'rules parsed');
+}, 'simple rules parsed');
 
-ok($v = new WebPAC::Validate(
-       debug => $debug,
-), "new witout path");
+diag dump( $v ) if ( $debug );
 
-ok( ! $v->{rules}, 'no path' );
+ok( $v->read_validate_file( "$abs_path/data/validate_test_simple" ), "read_validate_file" );
 
-ok( $v->read_validate_file( $validate_path ), "read_validate_file( $validate_path )" );
+diag dump( $v ) if ( $debug );
 
 ok($v->{rules}, "rules exist");
 
+is_deeply( $v->{rules}, {
+       '900' => [ 'a', 'b', 'c', 'd' ],
+}, 'rules parsed');
+
+ok( $v->read_validate_file( "$abs_path/data/validate_test" ), "read_validate_file" );
+
 is_deeply( $v->{rules}, {
        '900' => 1,
        '901' => [ 'a' ],
@@ -53,8 +60,9 @@ is_deeply( $v->{rules}, {
        '903' => [ 'a', 'b', 'c' ],
        '904' => [ 'a' ],
        '905' => [ 'a*' ],
-}, 'rules parsed');
+}, 'rules');
 
+ok($v->{rules}, "rules exist");
 
 throws_ok { $v->validate_rec() } qr/rec/, "validate_rec need rec";
 
@@ -155,7 +163,7 @@ test_v({
 
 my $expected_error = {
    900 => { not_repeatable => "probably bug in parsing input data" },
-   901 => { missing_subfield => "a required" },
+   901 => { missing_subfield => "a required", "dump" => "baz" },
    902 => {
             "dump"   => "^a1^b1^b2",
             subfield => { extra => { a => 1 }, extra_repeatable => { b => 1 } },
@@ -181,6 +189,8 @@ $expected_error, 'validate without subfields');
 
 ok(my $r1 = $v->report, 'report');
 
+diag "report: $r1" if ( $debug );
+
 is_deeply(
        test_v({
                '900' => 'foo',
@@ -192,7 +202,6 @@ is_deeply(
        }, undef),
 $expected_error, 'validate with subfields');
 
-
 ok(my $r2 = $v->report, 'report');
 
 cmp_ok($r1, 'eq', $r2, 'subfields same as non-subfields');