/[webpac2]/trunk/t/1-validate.t
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/t/1-validate.t

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 669 by dpavlin, Mon Sep 11 12:32:51 2006 UTC revision 670 by dpavlin, Mon Sep 11 14:29:08 2006 UTC
# Line 1  Line 1 
1  #!/usr/bin/perl -w  #!/usr/bin/perl -w
2    
3  use strict;  use strict;
4  use Test::More tests => 51;  use Test::More tests => 47;
5  use Test::Exception;  use Test::Exception;
6  use blib;  use blib;
7    
# Line 55  sub test_v { Line 55  sub test_v {
55                  my $tmp = $e;                  my $tmp = $e;
56                  while (@_) {                  while (@_) {
57                          my $k = shift @_;                          my $k = shift @_;
58                          ok($tmp = $tmp->{$k}, "found $k");                          ok($tmp = $tmp->{$k}, "found $k") if (defined($k));
59                  }                  }
60                  diag "tmp: ",dump($tmp) if ($debug);                  diag "tmp: ",dump($tmp) if ($debug);
61                  if ($tmp) {                  if ($tmp) {
# Line 109  test_v({ Line 109  test_v({
109  }, qw/903 subfield extra d/);  }, qw/903 subfield extra d/);
110    
111  is_deeply(  is_deeply(
112            test_v({
113  test_v({                  '903' => [ { 'a' => 0 }, { 'b' => 1 }, { 'c' => 2 }, { 'd' => 3 }, { 'e' => 4 } ]
114          '903' => [ { 'a' => 0 }, { 'b' => 1 }, { 'c' => 2 }, { 'd' => 3 }, { 'e' => 4 } ]          }, qw/903 subfield extra/),
 }, qw/903 subfield extra/),  
115  { 'd' => 1, 'e' => 1 }, 'additional fields d, e');  { 'd' => 1, 'e' => 1 }, 'additional fields d, e');
116    
117  test_v({  test_v({
# Line 135  test_v({ Line 134  test_v({
134          '905' => [ ]          '905' => [ ]
135  });  });
136    
137  test_v({  my $expected_error = {
138          '900' => 'foo',     900 => { not_repeatable => "probably bug in parsing input data" },
139          '901' => [ qw/foo bar baz/ ],     901 => { missing_subfield => "a required" },
140          '902' => [ { 'a' => 1, 'b' => [ 1,2 ] } ],     902 => {
141          '903' => [ { 'a' => [ 1, 2 ], 'c' => 1, } ],              "dump"   => "^a1^b1^b2",
142          '904' => [ { 'b' => 1 } ],              subfield => { extra => { a => 1 }, extra_repeatable => { b => 1 } },
143          '905' => [ { 'a' => 1 } ],            },
144  });     903 => {
145                "dump"   => "^a1^a2^c1",
146                subfield => { extra_repeatable => { a => 1 } },
147              },
148       904 => { subfield => { extra => { b => 1 }, missing => { a => 1 } } },
149    };
150    
151    
152    is_deeply(
153            test_v({
154                    '900' => 'foo',
155                    '901' => [ qw/foo bar baz/ ],
156                    '902' => [ { 'a' => 1, 'b' => [ 1,2 ] } ],
157                    '903' => [ { 'a' => [ 1, 2 ], 'c' => 1, } ],
158                    '904' => [ { 'b' => 1 } ],
159                    '905' => [ { 'a' => 1 } ],
160            }, undef),
161    $expected_error, 'validate without subfields');
162    
163    ok(my $r1 = $v->report, 'report');
164    
165    is_deeply(
166            test_v({
167                    '900' => 'foo',
168                    '901' => [ qw/foo bar baz/ ],
169                    '902' => [ { 'a' => 1, 'b' => [ 1,2 ], subfields => [ qw/a 0 b 0 b 1/ ] } ],
170                    '903' => [ { 'a' => [ 1, 2 ], 'c' => 1, subfields => [ qw/a 0 a 1 c 0/ ] } ],
171                    '904' => [ { 'b' => 1, subfields => [ qw/b 0/ ] } ],
172                    '905' => [ { 'a' => 1, subfields => [ qw/a 0/ ] } ],
173            }, undef),
174    $expected_error, 'validate with subfields');
175    
176    
177  diag "errors: ",dump( $v->all_errors );  ok(my $r2 = $v->report, 'report');
178    
179  diag "report: ", $v->report;  cmp_ok($r1, 'eq', $r2, 'subfields same as non-subfields');

Legend:
Removed from v.669  
changed lines
  Added in v.670

  ViewVC Help
Powered by ViewVC 1.1.26