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

(-)a/t/db_dependent/Items.t (-2 / +79 lines)
Lines 26-32 use Koha::Library; Link Here
26
use t::lib::Mocks;
26
use t::lib::Mocks;
27
use t::lib::TestBuilder;
27
use t::lib::TestBuilder;
28
28
29
use Test::More tests => 9;
29
use Test::More tests => 10;
30
30
31
use Test::Warn;
31
use Test::Warn;
32
32
Lines 424-429 subtest 'SearchItems test' => sub { Link Here
424
    $schema->storage->txn_rollback;
424
    $schema->storage->txn_rollback;
425
};
425
};
426
426
427
subtest 'ModItemFromMarc tests' => sub {
428
429
    plan tests => 3;
430
431
    my $dbh = C4::Context->dbh;
432
    my $builder = t::lib::TestBuilder->new;
433
434
    $schema->storage->txn_begin;
435
436
    my $branchcode = $builder->build({
437
        source => 'Branch',
438
    })->{ branchcode };
439
440
    my $frameworkcode = $builder->build({
441
        source => 'BiblioFramework'
442
    })->{ frameworkcode };
443
444
    my $msfstructure = $builder->build({
445
        source => 'MarcSubfieldStructure',
446
        value  => {
447
            frameworkcode => $frameworkcode,
448
            tagfield      => 952,
449
            tagsubfield   => 'k',
450
            kohafield     => 'materials'
451
        }
452
    });
453
454
    my $materials_value = 'materials_value';
455
    my ($itemfield)    = GetMarcFromKohaField('items.itemnumber', '');
456
    my ($biblionumber) = get_biblio();
457
    # Make sure the default framework has 952$3 => items.materials
458
    $dbh->do(q{ DELETE FROM marc_subfield_structure
459
                WHERE kohafield="items.materials" AND
460
                      frameworkcode=""}, undef, $itemfield);
461
    $dbh->do(q{ UPDATE marc_subfield_structure
462
                SET kohafield="items.materials"
463
                WHERE tagfield=? AND
464
                      tagsubfield="3" AND
465
                      frameworkcode=""}, undef, $itemfield);
466
467
    # Make sure cache is clean (TODO: change after bug 13074)
468
    $C4::Items::default_values_for_mod_from_marc;
469
470
    # Add an item with a fixed materials value
471
    my $item_record    = MARC::Record->new;
472
    $item_record->append_fields(
473
        MARC::Field->new(
474
            $itemfield, '', '',
475
            '3' => $materials_value
476
        )
477
    );
478
    my ( undef, undef, $itemnumber ) = AddItemFromMarc( $item_record, $biblionumber );
479
    my $item = Koha::Items->find( $itemnumber );
480
    is( $item->materials, $materials_value, 'Materials is correctly mapped on the default framework' );
481
482
    # Change the biblio's framework
483
    ModBiblioframework( $biblionumber, $frameworkcode );
484
    ModItemFromMarc( $item_record, $biblionumber, $itemnumber );
485
    $item = Koha::Items->find( $itemnumber );
486
    is( $item->materials, undef, 'Subfield 3 is not mapped on the new framework' );
487
488
    # Now have the right subfield
489
    $item_record = MARC::Record->new;
490
    $item_record->append_fields(
491
        MARC::Field->new(
492
            $itemfield, '', '',
493
            'k' => $materials_value
494
        )
495
    );
496
    ModItemFromMarc( $item_record, $biblionumber, $itemnumber );
497
    $item = Koha::Items->find( $itemnumber );
498
    is( $item->materials, $materials_value, 'Subfield mapping is taken from the biblio\'s framework' );
499
500
    $schema->storage->txn_rollback;
501
};
502
427
subtest 'Koha::Item(s) tests' => sub {
503
subtest 'Koha::Item(s) tests' => sub {
428
504
429
    plan tests => 5;
505
    plan tests => 5;
Lines 563-565 sub get_biblio { Link Here
563
    my ($bibnum, $bibitemnum) = AddBiblio($bib, '');
639
    my ($bibnum, $bibitemnum) = AddBiblio($bib, '');
564
    return ($bibnum, $bibitemnum);
640
    return ($bibnum, $bibitemnum);
565
}
641
}
566
- 
642
643
1;

Return to bug 16428