--- trunk/t/1-validate.t 2006/09/07 15:57:48 653 +++ trunk/t/1-validate.t 2006/09/07 16:54:47 655 @@ -1,7 +1,7 @@ #!/usr/bin/perl -w use strict; -use Test::More tests => 29; +use Test::More tests => 43; use Test::Exception; use blib; @@ -30,8 +30,11 @@ '901' => [ 'a' ], '902' => [ 'b', 'c' ], '903' => [ 'a', 'b', 'c' ], + '904' => [ 'a' ], }, 'rules parsed'); + + throws_ok { $v->validate_errors() } qr/rec/, "validate_rec need rec"; sub test_v { @@ -52,7 +55,14 @@ my $k = shift @_; ok($tmp = $tmp->{$k}, "found $k"); } - diag "additional message: $tmp" if ($tmp); + diag "tmp: ",dump($tmp) if ($debug); + if ($tmp) { + if (ref($tmp) eq 'HASH') { + return $tmp; + } else { + diag "explanation: $tmp"; + } + } } else { ok(! $e, "validated $d"); diag "expected error: ", dump($e) if($e); @@ -78,7 +88,7 @@ test_v({ '901' => [ { 'b' => 42 } ] -}, qw/field 901 subfield b/); +}, qw/field 901 subfield extra b/); test_v({ '902' => [ { 'b' => 1 }, { 'c' => 2 } ] @@ -86,7 +96,7 @@ test_v({ '902' => [ { 'a' => 0 }, { 'b' => 1 }, { 'c' => 2 } ] -}, qw/field 902 subfield a/); +}, qw/field 902 subfield extra a/); test_v({ '903' => [ { 'a' => 0 }, { 'b' => 1 }, { 'c' => 2 } ] @@ -94,5 +104,21 @@ test_v({ '903' => [ { 'a' => 0 }, { 'b' => 1 }, { 'c' => 2 }, { 'd' => 3 } ] -}, qw/field 903 subfield d/); +}, qw/field 903 subfield extra d/); + +is_deeply( + +test_v({ + '903' => [ { 'a' => 0 }, { 'b' => 1 }, { 'c' => 2 }, { 'd' => 3 }, { 'e' => 4 } ] +}, qw/field 903 subfield extra/), + +{ 'd' => 1, 'e' => 1 }, 'additional fields d, e'); + +test_v({ + '904' => [ { 'a' => 1, } ] +}); + +test_v({ + '904' => [ { 'b' => 1 } ] +}, qw/field 904 subfield extra b/);