r1505@llin: dpavlin | 2007-11-04 12:12:20 +0100
[webpac2] / t / 3-normalize.t
index b01e89f..152be5b 100755 (executable)
@@ -1,25 +1,15 @@
 #!/usr/bin/perl -w
 
 use strict;
-
-use Test::More tests => 341;
-use Test::Exception;
-use Cwd qw/abs_path/;
 use blib;
-use File::Slurp;
-use Getopt::Long;
+
+use Test::More tests => 352;
 
 BEGIN {
+       use_ok( 'WebPAC::Test' );
        use_ok( 'WebPAC::Normalize' );
 }
 
-use Data::Dump qw/dump/;
-
-my $debug = 0;
-GetOptions(
-       "debug+", \$debug
-);
-
 cmp_ok(_debug(1), '==', 1, '_debug level');
 cmp_ok(_debug(0), '==', 0, '_debug level');
 
@@ -28,10 +18,6 @@ if ($debug > 2) {
        diag "debug level for WebPAC::Normalize is ", _debug( $debug - 2 );
 }
 
-ok(my $abs_path = abs_path($0), "abs_path");
-$abs_path =~ s#/[^/]*$#/#;
-diag "abs_path: $abs_path" if ($debug);
-
 my $rec1 = {
        '200' => [{
                'a' => '200a',
@@ -176,7 +162,9 @@ sub test_s {
 
        ok(! _set_lookup( undef ), "set_lookup(undef)");
 
-       _set_rec( $rec1 );
+       _set_ds( $rec1 );
+
+       is_deeply( get_ds, $rec1, 'get_ds' );
 
        cmp_ok( join(",", rec2('200','a') ), 'eq', '200a,200a*2', 'join rec2' );
        cmp_ok( join(",", rec2('200','a'), rec2('200','b') ), 'eq', '200a,200a*2,200b', 'join rec2 rec2' );
@@ -372,7 +360,7 @@ sub test_s {
 
        #ok(! lookup('non-existent'), 'lookup non-existant' );
 
-       _set_rec( $rec2 );
+       _set_ds( $rec2 );
 
        test_s(qq{
                search_display('Title',
@@ -436,6 +424,11 @@ sub test_s {
        test_check_ds('search');
        test_check_ds('display');
 
+       _clean_ds();
+       test_s(qq{ sorted('something', '42'); });
+       test_s(qq{ sorted('empty', ''); });
+       test_check_ds('sorted');
+
        _clean_ds();
        my $n = read_file( "$abs_path/data/normalize.pl" );
        $n .= "\n1;\n";
@@ -454,7 +447,7 @@ sub test_s {
        my $rules = qq{ search('mixed', rec('200') ) };
        
        _clean_ds();
-       _set_rec( $rec );
+       _set_ds( $rec );
        test_s( $rules );
        ok($ds = _get_ds(), "get_ds");
        is_deeply( $ds, {
@@ -471,7 +464,7 @@ sub test_s {
 
        # wird and non-valid structure which is supported anyway
        _clean_ds();
-       _set_rec({
+       _set_ds({
                '200' => [{
                        'a' => '200a',
                },
@@ -521,7 +514,7 @@ sub test_s {
                my ($msg, $rec, $rules, $struct) = @_;
 
                _clean_ds();
-               _set_rec($rec);
+               _set_ds($rec);
 
                foreach my $r (split(/;/, $rules)) {
                        $r =~ s/[\s\n\r]+/ /gs;
@@ -630,7 +623,7 @@ sub test_s {
        sub test_rule {
                my ($msg, $rec, $rule, $struct) = @_;
                _clean_ds();
-               _set_rec( $rec );
+               _set_ds( $rec );
                $rule =~ s/\\/\\/gs;
                my $r = test_s( $rule );
                diag "for ", dump($rec), " got:\n", dump($r), "\nexpect:\n" if ($debug > 1);
@@ -858,5 +851,19 @@ sub test_s {
                        ["000", "0    5    A"]
                ]
        );
+
+       test_s(qq{ isbn_13( '1558607013', '978-1558607019' ) });
+       test_s(qq{ isbn_10( '1558607013', '978-1558607019' ) });
+
+       is_deeply(
+               [ isbn_13( '1558607013', '978-1558607019' ) ],
+               [ '978-1-55860-701-9', '978-1-55860-701-9', ],
+       'isbn_13' );
+
+       is_deeply(
+               [ isbn_10( '1558607013', '978-1558607019' ) ],
+               [ '1-55860-701-3', '1-55860-701-3' ],
+       'isbn_10' );
+
 }