3 # Tests for Koha/SearchEngine/Search
7 use Test::More tests => 1;
18 use Koha::SearchEngine::Search;
21 my $mock = Test::MockObject->new();
22 $mock->fake_module( 'Catmandu::Store::ElasticSearch' );
25 my $schema = Koha::Database->new->schema;
26 $schema->storage->txn_begin;
28 subtest 'Test extract_biblionumber' => sub {
31 t::lib::Mocks::mock_preference( 'SearchEngine', 'Zebra' );
32 my $biblio_mod = Test::MockModule->new( 'C4::Biblio' );
33 my $search_mod = Test::MockModule->new( 'C4::Search' );
34 my $koha_fields = [ '001', '' ];
35 $biblio_mod->mock( 'GetMarcFromKohaField', sub { return @$koha_fields; });
36 $search_mod->mock( 'new_record_from_zebra', \&test_record );
39 my $searcher = Koha::SearchEngine::Search->new;
40 my $bibno = $searcher->extract_biblionumber( 'fake_result' );
41 is( $bibno, 3456, 'Extracted biblio number for Zebra' );
43 # Now use 999c with Elasticsearch
44 t::lib::Mocks::mock_preference( 'SearchEngine', 'Elasticsearch' );
45 $search_mod->unmock( 'new_record_from_zebra' );
46 $koha_fields = [ '999', 'c' ];
47 $searcher = Koha::SearchEngine::Search->new({ index => 'biblios' });
48 $bibno = $searcher->extract_biblionumber( test_record() );
49 is( $bibno, 4567, 'Extracted biblio number for Zebra' );
54 my $marc = MARC::Record->new;
56 MARC::Field->new( '001', '3456' ),
57 MARC::Field->new( '245', '', '', a => 'Some title' ),
58 MARC::Field->new( '999', '', '', c => '4567' ),
63 $schema->storage->txn_rollback;