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

(-)a/t/db_dependent/Items.t (-2 / +90 lines)
Lines 23-29 use C4::Biblio; Link Here
23
use C4::Branch;
23
use C4::Branch;
24
use Koha::Database;
24
use Koha::Database;
25
25
26
use Test::More tests => 8;
26
use t::lib::Mocks;
27
28
use Test::More tests => 9;
29
27
use Test::Warn;
30
use Test::Warn;
28
31
29
BEGIN {
32
BEGIN {
Lines 431-436 subtest 'Koha::Item(s) tests' => sub { Link Here
431
    is( $holdingbranch->branchcode(), $branch2, "Home branch code matches holdingbranch" );
434
    is( $holdingbranch->branchcode(), $branch2, "Home branch code matches holdingbranch" );
432
};
435
};
433
436
437
subtest 'C4::Biblio::EmbedItemsInMarcBiblio' => sub {
438
    plan tests => 7;
439
440
    $dbh->{AutoCommit} = 0;
441
    $dbh->{RaiseError} = 1;
442
443
    my ( $biblionumber, $biblioitemnumber ) = get_biblio();
444
    my $item_infos = [
445
        { homebranch => 'CPL', holdingbranch => 'CPL' },
446
        { homebranch => 'CPL', holdingbranch => 'CPL' },
447
        { homebranch => 'CPL', holdingbranch => 'CPL' },
448
        { homebranch => 'MPL', holdingbranch => 'MPL' },
449
        { homebranch => 'MPL', holdingbranch => 'MPL' },
450
        { homebranch => 'CPL', holdingbranch => 'MPL' },
451
        { homebranch => 'CPL', holdingbranch => 'MPL' },
452
        { homebranch => 'CPL', holdingbranch => 'MPL' },
453
    ];
454
    my $number_of_items = scalar @$item_infos;
455
    my $number_of_items_with_homebranch_is_CPL =
456
      grep { $_->{homebranch} eq 'CPL' } @$item_infos;
457
458
    my @itemnumbers;
459
    for my $item_info (@$item_infos) {
460
        my ( undef, undef, $itemnumber ) = AddItem(
461
            {
462
                homebranch    => $item_info->{homebranch},
463
                holdingbranch => $item_info->{holdingbanch}
464
            },
465
            $biblionumber
466
        );
467
        push @itemnumbers, $itemnumber;
468
    }
469
470
    # Emptied the OpacHiddenItems pref
471
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', '' );
472
473
    my ($itemfield) =
474
      C4::Biblio::GetMarcFromKohaField( 'items.itemnumber', '' );
475
    my $record = C4::Biblio::GetMarcBiblio($biblionumber);
476
    warning_is { C4::Biblio::EmbedItemsInMarcBiblio() }
477
    { carped => 'EmbedItemsInMarcBiblio: No MARC record passed' },
478
      'Should crap is no record passed.';
479
480
    C4::Biblio::EmbedItemsInMarcBiblio( $record, $biblionumber );
481
    my @items = $record->field($itemfield);
482
    is( scalar @items, $number_of_items, 'Should return all items' );
483
484
    C4::Biblio::EmbedItemsInMarcBiblio( $record, $biblionumber,
485
        [ $itemnumbers[1], $itemnumbers[3] ] );
486
    @items = $record->field($itemfield);
487
    is( scalar @items, 2, 'Should return all items present in the list' );
488
489
    C4::Biblio::EmbedItemsInMarcBiblio( $record, $biblionumber, undef, 1 );
490
    @items = $record->field($itemfield);
491
    is( scalar @items, $number_of_items, 'Should return all items for opac' );
492
493
    my $opachiddenitems = "
494
        homebranch: ['CPL']";
495
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
496
497
    C4::Biblio::EmbedItemsInMarcBiblio( $record, $biblionumber );
498
    @items = $record->field($itemfield);
499
    is( scalar @items,
500
        $number_of_items,
501
        'Even with OpacHiddenItems set, all items should have been embeded' );
502
503
    C4::Biblio::EmbedItemsInMarcBiblio( $record, $biblionumber, undef, 1 );
504
    @items = $record->field($itemfield);
505
    is(
506
        scalar @items,
507
        $number_of_items - $number_of_items_with_homebranch_is_CPL,
508
'For OPAC, the pref OpacHiddenItems should have been take into account. Only items with homebranch ne CPL should have been embeded'
509
    );
510
511
    $opachiddenitems = "
512
        homebranch: ['CPL', 'MPL']";
513
    t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems );
514
    C4::Biblio::EmbedItemsInMarcBiblio( $record, $biblionumber, undef, 1 );
515
    @items = $record->field($itemfield);
516
    is(
517
        scalar @items,
518
        0,
519
'For OPAC, If all items are hidden, no item should have been embeded'
520
    );
521
};
522
434
# Helper method to set up a Biblio.
523
# Helper method to set up a Biblio.
435
sub get_biblio {
524
sub get_biblio {
436
    my $bib = MARC::Record->new();
525
    my $bib = MARC::Record->new();
437
- 

Return to bug 12252