/[webpac2]/trunk/t/1-validate-delimiters.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-delimiters.t

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

revision 832 by dpavlin, Wed May 23 20:03:16 2007 UTC revision 949 by dpavlin, Thu Nov 1 00:16:48 2007 UTC
# Line 1  Line 1 
1  #!/usr/bin/perl -w  #!/usr/bin/perl -w
2    
3  use strict;  use strict;
 use Test::More tests => 5;  
 use Test::Exception;  
4  use blib;  use blib;
5    
6  use Data::Dump qw/dump/;  use Test::More tests => 15;
7  use Cwd qw/abs_path/;  
8    use File::Temp qw/ :POSIX /;
9    
10  BEGIN {  BEGIN {
11    use_ok( 'WebPAC::Test' );
12  use_ok( 'WebPAC::Validate' );  use_ok( 'WebPAC::Validate' );
13  }  }
14    
15  my $debug = shift @ARGV;  my $delimiters_path = tmpnam();
   
 ok(my $abs_path = abs_path($0), "abs_path");  
 $abs_path =~ s#/[^/]*$#/#;  
16    
17  ok(my $v = new WebPAC::Validate(  ok(my $v = new WebPAC::Validate(
18          path => "$abs_path/data/validate_test",          path => "$abs_path/data/validate_test",
19          delimiters => [ ' : ', ' ; ', ' / ', ' \. ', ' = ' ],          delimiters => [ ' : ', ' ; ', ' / ', ' \. ', ' = ' ],
20          debug => $debug,          delimiters_path => $delimiters_path,
21            %LOG,
22  ), "new");  ), "new");
23    
24  diag "rules = ", dump( $v->{rules} );  diag "rules = ", dump( $v->{rules} ) if ( $debug );
25    
26  $v->{rules} = {};  $v->{rules} = {};
27    
# Line 34  sub test_v { Line 32  sub test_v {
32    
33          $row->{'000'} = [ 42 ];          $row->{'000'} = [ 42 ];
34    
35          $v->reset_errors;          $v->reset;
36          my $e = $v->validate_rec( $row );          my $e = $v->validate_rec( $row );
37    
38          diag ">> validate $d\n",dump($e) if ($debug);          diag ">> validate $d\n",dump($e) if ($debug);
# Line 53  test_v({ Line 51  test_v({
51          ],          ],
52  });  });
53    
54  diag dump($v->{_delimiters_templates});  diag dump($v->{_delimiters_templates}) if ( $debug );
55    
56  is_deeply( $v->{_delimiters_templates}, {  is_deeply( $v->{_delimiters_templates}, {
57          900 => {          900 => {
# Line 64  is_deeply( $v->{_delimiters_templates}, Line 62  is_deeply( $v->{_delimiters_templates},
62          901 => { "^a :  / ^b" => 2 },          901 => { "^a :  / ^b" => 2 },
63  }, 'just subfields and delimiters');  }, 'just subfields and delimiters');
64    
65  ok(my $dt = $v->delimiters_templates, 'delimiters_template');  ok(! $v->delimiters_templates, 'no accumulated delimiters_template');
66  diag $dt;  
67    ok(my $dt = $v->delimiters_templates( current_input => 1 ), 'delimiters_template');
68    diag $dt if ( $debug );
69    
70    ok($dt = $v->delimiters_templates( report => 1, current_input => 1 ), 'delimiters_template report');
71    diag $dt if ( $debug );
72    
73    $v->reset;
74    ok( $v->delimiters_templates, 'have accumulated delimiters_templates');
75    
76    $v->{_validate_delimiters_templates} = {
77            900 => { '^a : ^b' => 1 },
78    };
79    
80    test_v({
81            '900' => [
82                    { 'a' => 'foo : bar', 'b' => 'baz' },
83                    { 'a' => 'foo', 'b' => 'baz' },
84                    { 'a' => 'foo' },
85                    { 'a' => 'foo : bar' },
86            ],
87    });
88    
89    ok (my $e = $v->report, 'report');
90    
91    diag $e if ( $debug );
92    
93    ok( $v->save_delimiters_templates, 'save_delimiters_templates' );
94    
95    ok( -s $delimiters_path, "$delimiters_path " . ( -s $delimiters_path ) . " bytes" );
96    
97    ok( $v->save_delimiters_templates, 'save_delimiters_templates to existing file' );
98    
99    ok( -s $delimiters_path . '.new' , "new file created" );
100    
101    ok(my $v2 = new WebPAC::Validate(
102            delimiters => [ ' : ', ' ; ', ' / ', ' \. ', ' = ' ],
103            delimiters_path => $delimiters_path,
104            debug => $debug,
105    ), "new");
106    
107    is_deeply( $v->{_accumulated_delimiters_templates}, $v2->{_validate_delimiters_templates}, 'save/load ok');
108    
109    diag dump( $v, $v2 ) if $debug;

Legend:
Removed from v.832  
changed lines
  Added in v.949

  ViewVC Help
Powered by ViewVC 1.1.26