From efd1b3525b076397b37f8bf6f2dab67fe911970d Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Mon, 27 Apr 2020 11:28:51 +0000 Subject: [PATCH] Bug 25229: Unit test --- t/Koha/SearchEngine/Elasticsearch/Search.t | 65 ++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 t/Koha/SearchEngine/Elasticsearch/Search.t diff --git a/t/Koha/SearchEngine/Elasticsearch/Search.t b/t/Koha/SearchEngine/Elasticsearch/Search.t new file mode 100644 index 0000000000..a6ffd42069 --- /dev/null +++ b/t/Koha/SearchEngine/Elasticsearch/Search.t @@ -0,0 +1,65 @@ +#!/usr/bin/perl +# +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + +use Modern::Perl; + +use Test::More tests => 2; +use Test::MockModule; +use t::lib::Mocks; + +use_ok('Koha::SearchEngine::Elasticsearch::Search'); + +subtest 'search_auth_compat' => sub { + plan tests => 2; + + t::lib::Mocks::mock_preference('QueryRegexEscapeOptions', 'dont_escape'); + + my $module = Test::MockModule->new('Koha::SearchEngine::Elasticsearch::Search'); + $module->mock('count_auth_use', sub { return 1 }); + $module->mock('search', sub { + # While the 001 and the authid should be the same, it is not always the case + # The _id is always the authid and so should be our source of trutch + my $marc_record = MARC::Record->new(); + $marc_record->append_fields( + MARC::Field->new('001', 'Wrong001Number'), + ); + return { + hits => { + hits => [{ + '_id' => 8675309, + '_source' => { + 'local-number' => ['Wrong001Number'], + 'marc_data' => $marc_record, + 'marc_format' => 'base64ISO2709', + }, + }] + } + }; + }); + my $search; + ok( + $search = Koha::SearchEngine::Elasticsearch::Search->new({ 'index' => $Koha::SearchEngine::Elasticsearch::AUTHORITIES_INDEX }), + 'Creating a new Search object' + ); + + my ( $results, undef ) = $search->search_auth_compat('faked'); + + is( @$results[0]->{authid}, '8675309', 'We get the expected record _id and not the 001'); + +}; + +1; -- 2.11.0