76 lines
2.3 KiB
Perl
Executable File
76 lines
2.3 KiB
Perl
Executable File
#!/usr/bin/perl
|
|
#
|
|
# This Koha test module is a stub!
|
|
# Add more tests here!!!
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use Test::MockModule;
|
|
use Test::MockObject;
|
|
use Test::NoWarnings;
|
|
use Test::More tests => 6;
|
|
use t::lib::Mocks;
|
|
use MARC::Record;
|
|
|
|
use C4::AuthoritiesMarc qw( FindDuplicateAuthority );
|
|
|
|
BEGIN {
|
|
use_ok( 'C4::AuthoritiesMarc::MARC21', qw( default_auth_type_location fix_marc21_auth_type_location ) );
|
|
}
|
|
|
|
my @result = C4::AuthoritiesMarc::MARC21::default_auth_type_location();
|
|
ok( $result[0] eq '942', "testing default_auth_type_location has first value '942'" );
|
|
ok( $result[1] eq 'a', "testing default_auth_type_location has first value 'a'" );
|
|
|
|
my $marc_record = MARC::Record->new();
|
|
is(
|
|
C4::AuthoritiesMarc::MARC21::fix_marc21_auth_type_location( $marc_record, '', '' ), undef,
|
|
"testing fix_marc21_auth_type_location returns undef with empty MARC record"
|
|
);
|
|
|
|
subtest "FindDuplicateAuthority tests" => sub {
|
|
plan tests => 2;
|
|
my $zebra_search_module = Test::MockModule->new('C4::Search');
|
|
$zebra_search_module->mock(
|
|
'SimpleSearch',
|
|
sub {
|
|
my $query = shift;
|
|
return ( undef, [$query] );
|
|
}
|
|
);
|
|
$zebra_search_module->mock(
|
|
'new_record_from_zebra',
|
|
sub {
|
|
my ( undef, $query ) = @_;
|
|
my $marc = MARC::Record->new;
|
|
$marc->append_fields(
|
|
MARC::Field->new( '001', $query ),
|
|
);
|
|
return $marc;
|
|
}
|
|
);
|
|
my $es_search_module = Test::MockModule->new('Koha::SearchEngine::Elasticsearch::Search');
|
|
$es_search_module->mock(
|
|
'simple_search_compat',
|
|
sub {
|
|
my ( undef, $query ) = @_;
|
|
return ( undef, [$query] );
|
|
}
|
|
);
|
|
|
|
my $record = MARC::Record->new;
|
|
$record->append_fields(
|
|
MARC::Field->new( '155', '', '', a => 'Potato' ),
|
|
);
|
|
|
|
t::lib::Mocks::mock_preference( 'SearchEngine', 'Zebra' );
|
|
my ($query) = FindDuplicateAuthority( $record, "GENRE/FORM" );
|
|
is( $query, q{at:"GENRE/FORM" AND he:"Potato"}, "Query formed correctly for Zebra" );
|
|
|
|
t::lib::Mocks::mock_preference( 'SearchEngine', 'Elasticsearch' );
|
|
($query) = FindDuplicateAuthority( $record, "GENRE/FORM" );
|
|
is( $query, q{at:"GENRE/FORM" AND he:"Potato"}, "Query formed correctly for Elasticsearch" );
|
|
|
|
};
|