r890@llin: dpavlin | 2006-09-06 16:24:27 +0200
[webpac2] / t / 1-validate.t
index 7a65ab6..df43161 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/perl -w
 
 use strict;
-use Test::More tests => 5;
+use Test::More tests => 16;
 use Test::Exception;
 use blib;
 
@@ -24,3 +24,46 @@ ok(my $v = new WebPAC::Validate(
 ), "new");
 
 ok($v->{rules}, "rules exist");
+
+is_deeply( $v->{rules}, {
+       '900' => 1,
+       '901' => [ 'a' ],
+       '902' => [ 'b', 'c' ],
+       '903' => [ 'a', 'b', 'c' ],
+}, 'rules parsed');
+
+throws_ok { $v->validate_errors() } qr/rec/, "validate_rec need rec";
+
+ok($v->validate_errors({ '900' => 'foo' }), '900 garbage input');
+
+ok(! $v->validate_errors({
+       '900' => [ qw/foo bar baz/ ]
+}), '900 no sf');
+
+ok($v->validate_errors({
+       '901' => [ qw/foo bar baz/ ]
+}), '901 no sf');
+
+ok(! $v->validate_errors({
+       '901' => [ { 'a' => 42 } ]
+}), '901^a');
+
+ok($v->validate_errors({
+       '901' => [ { 'b' => 42 } ]
+}), '901^b');
+
+ok(! $v->validate_errors({
+       '902' => [ { 'b' => 1 }, { 'c' => 2 } ]
+}), '902^b 902^c');
+
+ok($v->validate_errors({
+       '902' => [ { 'a' => 0 }, { 'b' => 1 }, { 'c' => 2 } ]
+}), '902^a 902^b 902^c');
+
+ok(! $v->validate_errors({
+       '903' => [ { 'a' => 0 }, { 'b' => 1 }, { 'c' => 2 } ]
+}), '903^a 903^b 903^c');
+
+ok($v->validate_errors({
+       '903' => [ { 'a' => 0 }, { 'b' => 1 }, { 'c' => 2 }, { 'd' => 3 } ]
+}), '903^a 903^b 903^c 903^d');