Koha/t/db_dependent/AuthoritiesMarc.t
Robin Sheat 2b72cc9c21 Bug 8890 - move two more db dependent tests
* t/AuthoritiesMarc.t
* t/SuggestionEngine_ExplodedTerms.t

Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
2012-10-24 17:52:42 +02:00

98 lines
2.9 KiB
Perl
Executable file

#!/usr/bin/perl
#
# This Koha test module is a stub!
# Add more tests here!!!
use strict;
use warnings;
use Test::More tests => 5;
use Test::MockModule;
use MARC::Record;
BEGIN {
use_ok('C4::AuthoritiesMarc');
}
# We are now going to be testing the authorities hierarchy code, and
# therefore need to pretend that we have consistent data in our database
my $module = new Test::MockModule('C4::AuthoritiesMarc');
$module->mock('GetHeaderAuthority', sub {
return {'authtrees' => ''};
});
$module->mock('AddAuthorityTrees', sub {
return;
});
$module->mock('GetAuthority', sub {
my ($authid) = @_;
my $record = MARC::Record->new();
if ($authid eq '1') {
$record->add_fields(
[ '001', '1' ],
[ '151', ' ', ' ', a => 'United States' ]
);
} elsif ($authid eq '2') {
$record->add_fields(
[ '001', '2' ],
[ '151', ' ', ' ', a => 'New York (State)' ],
[ '551', ' ', ' ', a => 'United States', w => 'g', 9 => '1' ]
);
} elsif ($authid eq '3') {
$record->add_fields(
[ '001', '3' ],
[ '151', ' ', ' ', a => 'New York (City)' ],
[ '551', ' ', ' ', a => 'New York (State)', w => 'g', 9 => '2' ]
);
} elsif ($authid eq '4') {
$record->add_fields(
[ '001', '4' ],
[ '151', ' ', ' ', a => 'New York (City)' ],
[ '551', ' ', ' ', a => 'New York (State)', w => 'g' ]
);
} else {
undef $record;
}
return $record;
});
is(BuildAuthHierarchies(3, 1), '1,2,3', "Built linked authtrees hierarchy string");
my $expectedhierarchy = [ [ {
'authid' => '1',
'value' => 'United States',
'class' => 'child0',
'children' => [ {
'authid' => '2',
'value' => 'New York (State)',
'class' => 'child1',
'children' => [ {
'authid' => '3',
'current_value' => 1,
'value' => 'New York (City)',
'class' => 'child2',
'children' => [],
'parents' => [ {
'authid' => '2',
'value' => 'New York (State)'
} ]
} ],
'parents' => [ {
'authid' => '1',
'value' => 'United States'
} ]
} ],
'parents' => []
} ] ];
is_deeply(GenerateHierarchy(3), $expectedhierarchy, "Generated hierarchy data structure for linked hierarchy");
is(BuildAuthHierarchies(4, 1), '4', "Built unlinked authtrees hierarchy string");
$expectedhierarchy = [ [ {
'authid' => '4',
'current_value' => 1,
'value' => 'New York (City)',
'class' => 'child0',
'children' => [],
'parents' => []
} ] ];
is_deeply(GenerateHierarchy(4), $expectedhierarchy, "Generated hierarchy data structure for unlinked hierarchy");