/[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

Annotation of /trunk/t/1-validate-delimiters.t

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1256 - (hide annotations)
Tue Jul 28 12:40:46 2009 UTC (14 years, 9 months ago) by dpavlin
File MIME type: application/x-troff
File size: 2536 byte(s)
use code from lib insted of blib

1 dpavlin 827 #!/usr/bin/perl -w
2    
3     use strict;
4 dpavlin 1256 use lib 'lib';
5 dpavlin 827
6 dpavlin 949 use Test::More tests => 15;
7    
8 dpavlin 846 use File::Temp qw/ :POSIX /;
9 dpavlin 827
10     BEGIN {
11 dpavlin 949 use_ok( 'WebPAC::Test' );
12 dpavlin 827 use_ok( 'WebPAC::Validate' );
13     }
14    
15 dpavlin 846 my $delimiters_path = tmpnam();
16 dpavlin 837
17 dpavlin 827 ok(my $v = new WebPAC::Validate(
18     path => "$abs_path/data/validate_test",
19 dpavlin 828 delimiters => [ ' : ', ' ; ', ' / ', ' \. ', ' = ' ],
20 dpavlin 846 delimiters_path => $delimiters_path,
21 dpavlin 949 %LOG,
22 dpavlin 827 ), "new");
23    
24 dpavlin 847 diag "rules = ", dump( $v->{rules} ) if ( $debug );
25 dpavlin 827
26     $v->{rules} = {};
27    
28     sub test_v {
29     my $row = shift || die "no row?";
30    
31     my $d = dump( $row );
32    
33     $row->{'000'} = [ 42 ];
34    
35 dpavlin 849 $v->reset;
36 dpavlin 827 my $e = $v->validate_rec( $row );
37    
38     diag ">> validate $d\n",dump($e) if ($debug);
39     }
40    
41     test_v({
42 dpavlin 828 '900' => [
43     { 'a' => 'a : aa = aaa : a ; a', 'b' => 'b ; b ; b ; b ; a : / z . z . ' },
44     { 'a' => 'a : a : a', 'c' => [ 'a : b ; c', 'a : b ; c / d' ] },
45     { 'a' => 'a : b / c' },
46     { 'a' => 'a : b / c' },
47 dpavlin 829 ],
48     '901' => [
49     { 'a' => 'a : b / c', 'b' => 'foo' },
50     { 'a' => 'a : b / c', 'b' => 'foo' },
51     ],
52 dpavlin 827 });
53    
54 dpavlin 847 diag dump($v->{_delimiters_templates}) if ( $debug );
55 dpavlin 827
56     is_deeply( $v->{_delimiters_templates}, {
57     900 => {
58 dpavlin 828 "^a : / " => 2,
59     "^a : : ^c : ; ^c : ; / " => 1,
60     "^a : = : ; ^b ; ; ; ; : . . " => 1,
61 dpavlin 827 },
62 dpavlin 829 901 => { "^a : / ^b" => 2 },
63 dpavlin 827 }, 'just subfields and delimiters');
64    
65 dpavlin 851 ok(! $v->delimiters_templates, 'no accumulated delimiters_template');
66    
67     ok(my $dt = $v->delimiters_templates( current_input => 1 ), 'delimiters_template');
68 dpavlin 847 diag $dt if ( $debug );
69 dpavlin 834
70 dpavlin 851 ok($dt = $v->delimiters_templates( report => 1, current_input => 1 ), 'delimiters_template report');
71 dpavlin 847 diag $dt if ( $debug );
72 dpavlin 835
73 dpavlin 851 $v->reset;
74     ok( $v->delimiters_templates, 'have accumulated delimiters_templates');
75    
76 dpavlin 835 $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 dpavlin 847 diag $e if ( $debug );
92 dpavlin 837
93     ok( $v->save_delimiters_templates, 'save_delimiters_templates' );
94    
95 dpavlin 849 ok( -s $delimiters_path, "$delimiters_path " . ( -s $delimiters_path ) . " bytes" );
96 dpavlin 846
97 dpavlin 847 ok( $v->save_delimiters_templates, 'save_delimiters_templates to existing file' );
98    
99     ok( -s $delimiters_path . '.new' , "new file created" );
100    
101 dpavlin 837 ok(my $v2 = new WebPAC::Validate(
102     delimiters => [ ' : ', ' ; ', ' / ', ' \. ', ' = ' ],
103 dpavlin 846 delimiters_path => $delimiters_path,
104 dpavlin 837 debug => $debug,
105     ), "new");
106    
107 dpavlin 849 is_deeply( $v->{_accumulated_delimiters_templates}, $v2->{_validate_delimiters_templates}, 'save/load ok');
108 dpavlin 846
109 dpavlin 949 diag dump( $v, $v2 ) if $debug;

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26