X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=t%2FAuthoritiesMarc_MARC21.t;h=4ed2e1dfb3cad7c4af0d6491da772975c708cc76;hb=2f1dffe1d5bbbb3deb6c92d881e2a8025ee8b672;hp=fbf713ac66d19c9a96f2cf5d2909fe908a91a566;hpb=e93126834cddfb5e0f33f0f8df77e67ee2a68b48;p=srvgit diff --git a/t/AuthoritiesMarc_MARC21.t b/t/AuthoritiesMarc_MARC21.t index fbf713ac66..4ed2e1dfb3 100755 --- a/t/AuthoritiesMarc_MARC21.t +++ b/t/AuthoritiesMarc_MARC21.t @@ -6,11 +6,16 @@ use strict; use warnings; -use Test::More tests => 4; +use Test::MockModule; +use Test::MockObject; +use Test::More tests => 5; +use t::lib::Mocks; use MARC::Record; +use C4::AuthoritiesMarc qw( FindDuplicateAuthority ); + BEGIN { - use_ok('C4::AuthoritiesMarc::MARC21'); + use_ok('C4::AuthoritiesMarc::MARC21', qw( default_auth_type_location fix_marc21_auth_type_location )); } my @result = C4::AuthoritiesMarc::MARC21::default_auth_type_location(); @@ -19,3 +24,39 @@ 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"); + +};