--- trunk/t/1-validate.t 2006/05/16 13:38:09 514 +++ trunk/t/1-validate.t 2006/05/16 15:23:05 515 @@ -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 @@ ), "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');