r1399@llin: dpavlin | 2007-10-31 11:19:39 +0100
[webpac2] / t / 1-validate-delimiters.t
index 2478ba1..2f7e5b4 100755 (executable)
@@ -1,13 +1,13 @@
 #!/usr/bin/perl -w
 
 use strict;
-use Test::More tests => 10;
+use Test::More tests => 15;
 use Test::Exception;
 use blib;
 
 use Data::Dump qw/dump/;
 use Cwd qw/abs_path/;
-use File::Temp qw/tempfile/;
+use File::Temp qw/ :POSIX /;
 
 BEGIN {
 use_ok( 'WebPAC::Validate' );
@@ -18,16 +18,16 @@ my $debug = shift @ARGV;
 ok(my $abs_path = abs_path($0), "abs_path");
 $abs_path =~ s#/[^/]*$#/#;
 
-my ( $fh, $path ) = tempfile();
+my $delimiters_path = tmpnam();
 
 ok(my $v = new WebPAC::Validate(
        path => "$abs_path/data/validate_test",
        delimiters => [ ' : ', ' ; ', ' / ', ' \. ', ' = ' ],
-       delimiters_path => $path,
+       delimiters_path => $delimiters_path,
        debug => $debug,
 ), "new");
 
-diag "rules = ", dump( $v->{rules} );
+diag "rules = ", dump( $v->{rules} ) if ( $debug );
 
 $v->{rules} = {};
 
@@ -38,7 +38,7 @@ sub test_v {
 
        $row->{'000'} = [ 42 ];
 
-       $v->reset_errors;
+       $v->reset;
        my $e = $v->validate_rec( $row );
 
        diag ">> validate $d\n",dump($e) if ($debug);
@@ -57,7 +57,7 @@ test_v({
        ],
 });
 
-diag dump($v->{_delimiters_templates});
+diag dump($v->{_delimiters_templates}) if ( $debug );
 
 is_deeply( $v->{_delimiters_templates}, {
        900 => {
@@ -68,11 +68,16 @@ is_deeply( $v->{_delimiters_templates}, {
        901 => { "^a :  / ^b" => 2 },
 }, 'just subfields and delimiters');
 
-ok(my $dt = $v->delimiters_templates, 'delimiters_template');
-diag $dt;
+ok(! $v->delimiters_templates, 'no accumulated delimiters_template');
 
-ok($dt = $v->delimiters_templates( report => 1 ), 'delimiters_template report');
-diag $dt;
+ok(my $dt = $v->delimiters_templates( current_input => 1 ), 'delimiters_template');
+diag $dt if ( $debug );
+
+ok($dt = $v->delimiters_templates( report => 1, current_input => 1 ), 'delimiters_template report');
+diag $dt if ( $debug );
+
+$v->reset;
+ok( $v->delimiters_templates, 'have accumulated delimiters_templates');
 
 $v->{_validate_delimiters_templates} = {
        900 => { '^a : ^b' => 1 },
@@ -89,15 +94,22 @@ test_v({
 
 ok (my $e = $v->report, 'report');
 
-diag $e;
-diag dump( $v->{errors} );
+diag $e if ( $debug );
 
 ok( $v->save_delimiters_templates, 'save_delimiters_templates' );
 
+ok( -s $delimiters_path, "$delimiters_path " . ( -s $delimiters_path ) . " bytes" );
+
+ok( $v->save_delimiters_templates, 'save_delimiters_templates to existing file' );
+
+ok( -s $delimiters_path . '.new' , "new file created" );
+
 ok(my $v2 = new WebPAC::Validate(
        delimiters => [ ' : ', ' ; ', ' / ', ' \. ', ' = ' ],
-       delimiters_path => $path,
+       delimiters_path => $delimiters_path,
        debug => $debug,
 ), "new");
 
-is_deeply( $v->{_delimiters_templates}, $v2->{_validate_delimiters_templates}, 'save/load ok');
+is_deeply( $v->{_accumulated_delimiters_templates}, $v2->{_validate_delimiters_templates}, 'save/load ok');
+
+diag dump( $v, $v2 ) if ( $debug );