#!/usr/bin/perl -w
use strict;
-use Test::More tests => 26;
-use Test::Exception;
use blib;
-use Data::Dump qw/dump/;
-use Cwd qw/abs_path/;
+use Test::More tests => 55;
+
use YAML qw/LoadFile/;
BEGIN {
+use_ok( 'WebPAC::Test' );
use_ok( 'WebPAC::Parser' );
use_ok( 'WebPAC::Config' );
}
-my $debug = shift @ARGV;
-
-ok(my $abs_path = abs_path($0), "abs_path");
-$abs_path =~ s#/[^/]*$#/#;
-
my $config_path = "$abs_path/conf/test.yml";
ok(-e $config_path, "$config_path exists");
-throws_ok { new WebPAC::Parser( no_log => 1 ) } qr/WebPAC::Config/, "new without config";
+throws_ok { new WebPAC::Parser( %LOG ) } qr/WebPAC::Config/, "new without config";
ok(
my $parser = new WebPAC::Parser(
config => new WebPAC::Config( path => $config_path ),
base_path => $abs_path,
- debug => $debug,
+ %LOG
), "new");
my $inputs = {
ok(! $parser->valid_database('non-existant'), "no database");
ok(! $parser->valid_database_input('foo','non-existant'), "no database input");
-ok(my $l = $parser->{_lookup_create}, "_lookup_create");
-diag "_lookup_create = ",dump($l);
+ok(my $l = $parser->{_lookup_create_key}, "_lookup_create_key");
+ok($parser->{_lookup_create}, "_lookup_create");
+diag "_lookup_create_key = ",dump($l) if ($debug);
+foreach my $db (keys %$l) {
+ foreach my $i (keys %{$l->{$db}}) {
+ ok(defined($parser->lookup_create_rules($db,$i)), "lookup_create_rules($db/$i)");
+ my @keys = sort keys %{$l->{$db}->{$i}};
+ ok(@keys, 'have keys');
+ my @have_keys = sort $parser->have_lookup_create($db,$i);
+ ok(@have_keys, 'have_lookup_create');
+ ok(eq_array(\@have_keys, \@keys), "found all lookups");
+ }
+}
ok(my $n = $parser->{_normalize_source}, "_normalize_source");
-diag "_normalize_source = ",dump($n);
+diag "_normalize_source = ",dump($n) if ($debug);
+foreach my $db (keys %$n) {
+ foreach my $i (keys %{$n->{$db}}) {
+ ok(my $r = $parser->normalize_rules($db,$i), "normalize_source($db/$i)");
+ diag "normalize_rules($db,$i) = $r" if ($debug);
+ cmp_ok($n->{$db}->{$i}, 'eq', $r, "same");
+ }
+}
ok(my $d = $parser->{depends}, "depends");
-diag "depends = ",dump($d);
+diag "depends = ",dump($d) if ($debug);
my $expected_depend = {
foo => {
is_deeply($d->{$db}->{$i}, $parser->depends($db,$i), "depend $db/$i");
}
}
+
+$config_path = "$abs_path/conf/marc.yml";
+
+ok(-e $config_path, "$config_path exists");
+
+ok(
+ my $parser = new WebPAC::Parser(
+ config => new WebPAC::Config( path => $config_path ),
+ base_path => $abs_path,
+ %LOG,
+), "new");
+
+ok(my $marc = $parser->have_rules('marc', 'marc', 'marc-input'), 'have_rules(marc,...)');
+
+diag "marc: ",dump($marc) if ($debug);
+
+is_deeply($marc, {
+ marc => 1,
+ marc_compose => 1,
+ marc_duplicate => 1,
+ marc_indicators => 1,
+ marc_leader => 1,
+ marc_original_order => 1,
+ marc_remove => 1,
+ marc_repeatable_subfield => 1,
+}, 'catched all marc_*');
+