View | Details | Raw Unified | Return to bug 37349
Collapse All | Expand All

(-)a/t/db_dependent/Biblio.t (-3 / +50 lines)
Lines 17-23 Link Here
17
17
18
use Modern::Perl;
18
use Modern::Perl;
19
19
20
use Test::More tests => 24;
20
use Test::More tests => 25;
21
use Test::MockModule;
21
use Test::MockModule;
22
use Test::Warn;
22
use Test::Warn;
23
use List::MoreUtils qw( uniq );
23
use List::MoreUtils qw( uniq );
Lines 29-34 use t::lib::TestBuilder; Link Here
29
use Koha::ActionLogs;
29
use Koha::ActionLogs;
30
use Koha::Database;
30
use Koha::Database;
31
use Koha::Caches;
31
use Koha::Caches;
32
use Koha::Cache::Memory::Lite;
32
use Koha::MarcSubfieldStructures;
33
use Koha::MarcSubfieldStructures;
33
34
34
use C4::Linker::Default qw( get_link );
35
use C4::Linker::Default qw( get_link );
Lines 229-234 subtest "Authority creation with default linker" => sub { Link Here
229
    ok( !defined $results->{added}, "If we have multiple matches, we shouldn't create a new record on second instance");
230
    ok( !defined $results->{added}, "If we have multiple matches, we shouldn't create a new record on second instance");
230
};
231
};
231
232
233
subtest "Test caching of authority types in LinkBibHeadingsToAuthorities" => sub {
234
    plan tests => 3;
235
    Koha::Cache::Memory::Lite->flush();    #Clear cache like we have a new request
236
    my $cache = Koha::Cache::Memory::Lite->get_instance();
237
238
    # No automatic authority creation
239
    t::lib::Mocks::mock_preference( 'LinkerModule',          'Default' );
240
    t::lib::Mocks::mock_preference( 'AutoLinkBiblios',       1 );
241
    t::lib::Mocks::mock_preference( 'AutoCreateAuthorities', 0 );
242
    t::lib::Mocks::mock_preference( 'marcflavour',           'MARC21' );
243
    my $linker          = C4::Linker::Default->new( {} );
244
    my $authorities_mod = Test::MockModule->new('C4::Heading');
245
    $authorities_mod->mock(
246
        'authorities',
247
        sub {
248
            my $results = [];
249
            return $results;
250
        }
251
    );
252
    my $authorities_type = Test::MockModule->new('Koha::Authority::Types');
253
    $authorities_type->mock(
254
        'find',
255
        sub {
256
            my ( $self, $params ) = @_;
257
            warn "Finding auth type $params";
258
            return $authorities_type->original("find")->( $self, $params );
259
        }
260
    );
261
    my $marc_record = MARC::Record->new();
262
    my $field1      = MARC::Field->new( 655, ' ', ' ', 'a' => 'Magical realism' );
263
    my $field2      = MARC::Field->new( 655, ' ', ' ', 'a' => 'Magical falsism' );
264
    $marc_record->append_fields( ( $field1, $field2 ) );
265
    my ( $num_changed, $results );
266
    warning_like { ( $num_changed, $results ) = LinkBibHeadingsToAuthorities( $linker, $marc_record, "", undef ) }
267
    qr/Finding auth type GENRE\/FORM/,
268
        "Type fetched only once";
269
    my $gf_type = $cache->get_from_cache("LinkBibHeadingsToAuthorities:AuthorityType:GENRE/FORM");
270
    ok( $gf_type, "GENRE/FORM type is found in cache" );
271
272
    warning_like { ( $num_changed, $results ) = LinkBibHeadingsToAuthorities( $linker, $marc_record, "", undef ) }
273
    undef,
274
        "Type not fetched a second time";
275
276
};
277
232
278
233
279
234
# Mocking variables
280
# Mocking variables
Lines 280-285 $currency->mock( Link Here
280
326
281
sub run_tests {
327
sub run_tests {
282
328
329
    Koha::Cache::Memory::Lite->flush();    #Clear cache like we have a new request
283
    my $marcflavour = shift;
330
    my $marcflavour = shift;
284
    t::lib::Mocks::mock_preference('marcflavour', $marcflavour);
331
    t::lib::Mocks::mock_preference('marcflavour', $marcflavour);
285
    # Authority tests don't interact well with Elasticsearch at the moment due to the fact that there's currently no way to
332
    # Authority tests don't interact well with Elasticsearch at the moment due to the fact that there's currently no way to
Lines 465-471 sub run_tests { Link Here
465
    is( @$marcurl, 2, 'GetMarcUrls returns two URLs' );
512
    is( @$marcurl, 2, 'GetMarcUrls returns two URLs' );
466
    like( $marcurl->[0]->{MARCURL}, qr/^https/, 'GetMarcUrls did not stumble over a preceding space' );
513
    like( $marcurl->[0]->{MARCURL}, qr/^https/, 'GetMarcUrls did not stumble over a preceding space' );
467
    ok( $marcflavour ne 'MARC21' || $marcurl->[1]->{MARCURL} =~ /^http:\/\//,
514
    ok( $marcflavour ne 'MARC21' || $marcurl->[1]->{MARCURL} =~ /^http:\/\//,
468
        'GetMarcUrls prefixed a MARC21 URL with http://' );
515
        "GetMarcUrls prefixed a $marcflavour URL with http://" );
469
516
470
    # Automatic authority creation
517
    # Automatic authority creation
471
    t::lib::Mocks::mock_preference('AutoLinkBiblios', 1);
518
    t::lib::Mocks::mock_preference('AutoLinkBiblios', 1);
Lines 514-519 sub run_tests { Link Here
514
    # Reset settings
561
    # Reset settings
515
    t::lib::Mocks::mock_preference('AutoLinkBiblios', 0);
562
    t::lib::Mocks::mock_preference('AutoLinkBiblios', 0);
516
    t::lib::Mocks::mock_preference('AutoCreateAuthorities', 0);
563
    t::lib::Mocks::mock_preference('AutoCreateAuthorities', 0);
564
    Koha::Cache::Memory::Lite->flush();    # Since we may have changed flavours
517
}
565
}
518
566
519
sub get_title_field {
567
sub get_title_field {
520
- 

Return to bug 37349