--- trunk/t/3-normalize-xml.t 2006/01/08 20:26:57 361 +++ trunk/t/3-normalize-xml.t 2006/01/08 20:27:01 362 @@ -1,6 +1,6 @@ #!/usr/bin/perl -w -use Test::More tests => 92; +use Test::More tests => 124; use Test::Exception; use Cwd qw/abs_path/; use blib; @@ -163,8 +163,8 @@ ] }, }; -sub parse_test($$$$) { - my ($import,$rec,$i,$r) = @_; +sub parse_test($$$$$) { + my ($import,$tag,$rec,$i,$r) = @_; $n->{import_xml}->{indexer} = $import; # erase internal cache (yak!) delete($n->{tags_by_order}); @@ -172,25 +172,25 @@ #diag "test normalisation of: ",Dumper($n->{import_xml}->{indexer}, $rec); ok(my $ds = $n->data_structure( $rec ), "data_structure"); #diag Dumper($ds); - cmp_ok($ds->{Tag}->{display}->[$i], 'eq', $r, "parse $i: $r"); + cmp_ok($ds->{$tag}->{display}->[$i], 'eq', $r, "parse $tag/$i - $r"); } -parse_test($import, $rec, 0, '1 + 2 = 3 [yap]'); +parse_test($import, 'Tag', $rec, 0, '1 + 2 = 3 [yap]'); delete($rec->{'900'}->[0]->{'b'}); -parse_test($import, $rec, 0, '1 = 3 [yap]'); +parse_test($import, 'Tag', $rec, 0, '1 = 3 [yap]'); $rec->{'900'}->[0]->{'b'} = 5; $rec->{'900'}->[0]->{'c'} = 6; -parse_test($import, $rec, 0, '1 + 5 = 6 [yap]'); +parse_test($import, 'Tag', $rec, 0, '1 + 5 = 6 [yap]'); delete($rec->{'900'}->[0]->{'c'}); $rec->{'900'}->[0]->{'x'} = 'hmmm'; -parse_test($import, $rec, 0, '1 + 5 [hmmm]'); +parse_test($import, 'Tag', $rec, 0, '1 + 5 [hmmm]'); $rec->{'900'}->[0]->{'x'} = 'nope!'; delete($rec->{'900'}->[0]->{'a'}); -parse_test($import, $rec, 0, '5 [nope!]'); +parse_test($import, 'Tag', $rec, 0, '5 [nope!]'); $rec = { '900' => [ { @@ -218,7 +218,37 @@ ] }, }; -parse_test($import, $rec, 0, '0 b1 3 b1 4'); -parse_test($import, $rec, 1, '0 a1 1 b2 3 a1_b2 4'); -parse_test($import, $rec, 2, '0 b3 2 c1 3 b3_c1 4'); -parse_test($import, $rec, 3, '0 a2 1 b4 2 c2 3 a2_b4_c2 4'); +parse_test($import, 'Tag', $rec, 0, '0 b1 3 b1 4'); +parse_test($import, 'Tag', $rec, 1, '0 a1 1 b2 3 a1_b2 4'); +parse_test($import, 'Tag', $rec, 2, '0 b3 2 c1 3 b3_c1 4'); +parse_test($import, 'Tag', $rec, 3, '0 a2 1 b4 2 c2 3 a2_b4_c2 4'); + +sub parse_test_arr($$$$) { + my ($import, $tag, $rec, $arr) = @_; + my $i = 0; + foreach my $res (@{$arr}) { + parse_test($import, $tag, $rec, $i, $res); + $i++; + } +} + +my $import = { + 'Tag_a' => { 'isis' => [ + { content => 'v900^a' }, + ] }, + 'Tag_b' => { 'isis' => [ + { content => 'v900^b' }, + ] }, + 'Tag_c' => { 'isis' => [ + { content => 'v900^c' }, + ] }, + 'Tag_x' => { 'isis' => [ + { content => 'v900^x' }, + ] }, +}; + +parse_test_arr($import, 'Tag_a', $rec, [ '','a1','','a2' ] ); +parse_test_arr($import, 'Tag_b', $rec, [ 'b1','b2','b3','b4' ] ); +parse_test_arr($import, 'Tag_c', $rec, [ '','','c1','c2' ] ); +parse_test_arr($import, 'Tag_x', $rec, [ 'b1','a1_b2','b3_c1','a2_b4_c2' ] ); +