#!/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'); } 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 $marcflavour = C4::Context->preference('marcflavour'); my $field; if ( $marcflavour eq 'MARC21' ) { $field = '155'; # GENRE/FORM field in MARC21 } elsif ( $marcflavour eq 'UNIMARC' ) { $field = '280'; # GENRE/FORM field in UNIMARC } my $record = MARC::Record->new; $record->append_fields( MARC::Field->new( $field, '', '', 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" ); };