#!/usr/bin/perl -w
use strict;
-use Test::More tests => 5;
+use Test::More tests => 16;
use Test::Exception;
use blib;
), "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');