1 |
#!/usr/bin/perl -w |
#!/usr/bin/perl -w |
2 |
|
|
3 |
use Test::More tests => 84; |
use Test::More tests => 92; |
4 |
use Test::Exception; |
use Test::Exception; |
5 |
use Cwd qw/abs_path/; |
use Cwd qw/abs_path/; |
6 |
use blib; |
use blib; |
163 |
] }, |
] }, |
164 |
}; |
}; |
165 |
|
|
166 |
sub parse_test($$$) { |
sub parse_test($$$$) { |
167 |
my ($import,$rec,$r) = @_; |
my ($import,$rec,$i,$r) = @_; |
168 |
$n->{import_xml}->{indexer} = $import; |
$n->{import_xml}->{indexer} = $import; |
169 |
# erase internal cache (yak!) |
# erase internal cache (yak!) |
170 |
delete($n->{tags_by_order}); |
delete($n->{tags_by_order}); |
172 |
#diag "test normalisation of: ",Dumper($n->{import_xml}->{indexer}, $rec); |
#diag "test normalisation of: ",Dumper($n->{import_xml}->{indexer}, $rec); |
173 |
ok(my $ds = $n->data_structure( $rec ), "data_structure"); |
ok(my $ds = $n->data_structure( $rec ), "data_structure"); |
174 |
#diag Dumper($ds); |
#diag Dumper($ds); |
175 |
cmp_ok($ds->{Tag}->{display}->[0], 'eq', $r, "parse $r"); |
cmp_ok($ds->{Tag}->{display}->[$i], 'eq', $r, "parse $i: $r"); |
176 |
} |
} |
177 |
|
|
178 |
parse_test($import, $rec, '1 + 2 = 3 [yap]'); |
parse_test($import, $rec, 0, '1 + 2 = 3 [yap]'); |
179 |
|
|
180 |
delete($rec->{'900'}->[0]->{'b'}); |
delete($rec->{'900'}->[0]->{'b'}); |
181 |
parse_test($import, $rec, '1 = 3 [yap]'); |
parse_test($import, $rec, 0, '1 = 3 [yap]'); |
182 |
|
|
183 |
$rec->{'900'}->[0]->{'b'} = 5; |
$rec->{'900'}->[0]->{'b'} = 5; |
184 |
$rec->{'900'}->[0]->{'c'} = 6; |
$rec->{'900'}->[0]->{'c'} = 6; |
185 |
parse_test($import, $rec, '1 + 5 = 6 [yap]'); |
parse_test($import, $rec, 0, '1 + 5 = 6 [yap]'); |
186 |
|
|
187 |
delete($rec->{'900'}->[0]->{'c'}); |
delete($rec->{'900'}->[0]->{'c'}); |
188 |
$rec->{'900'}->[0]->{'x'} = 'hmmm'; |
$rec->{'900'}->[0]->{'x'} = 'hmmm'; |
189 |
parse_test($import, $rec, '1 + 5 [hmmm]'); |
parse_test($import, $rec, 0, '1 + 5 [hmmm]'); |
190 |
|
|
191 |
$rec->{'900'}->[0]->{'x'} = 'nope!'; |
$rec->{'900'}->[0]->{'x'} = 'nope!'; |
192 |
delete($rec->{'900'}->[0]->{'a'}); |
delete($rec->{'900'}->[0]->{'a'}); |
193 |
parse_test($import, $rec, '5 [nope!]'); |
parse_test($import, $rec, 0, '5 [nope!]'); |
194 |
|
|
195 |
|
$rec = { |
196 |
|
'900' => [ { |
197 |
|
'b' => 'b1', |
198 |
|
'x' => 'b1', |
199 |
|
},{ |
200 |
|
'a' => 'a1', |
201 |
|
'b' => 'b2', |
202 |
|
'x' => 'a1_b2', |
203 |
|
},{ |
204 |
|
'b' => 'b3', |
205 |
|
'c' => 'c1', |
206 |
|
'x' => 'b3_c1', |
207 |
|
},{ |
208 |
|
'a' => 'a2', |
209 |
|
'b' => 'b4', |
210 |
|
'c' => 'c2', |
211 |
|
'x' => 'a2_b4_c2', |
212 |
|
} ], |
213 |
|
}; |
214 |
|
|
215 |
|
my $import = { |
216 |
|
'Tag' => { 'isis' => [ |
217 |
|
{ content => '0 v900^a 1 v900^b 2 v900^c 3 v900^x 4' }, |
218 |
|
] }, |
219 |
|
}; |
220 |
|
|
221 |
|
parse_test($import, $rec, 0, '0 b1 3 b1 4'); |
222 |
|
parse_test($import, $rec, 1, '0 a1 1 b2 3 a1_b2 4'); |
223 |
|
parse_test($import, $rec, 2, '0 b3 2 c1 3 b3_c1 4'); |
224 |
|
parse_test($import, $rec, 3, '0 a2 1 b4 2 c2 3 a2_b4_c2 4'); |