Lines 33-39
use Koha::Caches;
Link Here
|
33 |
use t::lib::Mocks; |
33 |
use t::lib::Mocks; |
34 |
use t::lib::TestBuilder; |
34 |
use t::lib::TestBuilder; |
35 |
|
35 |
|
36 |
use Test::More tests => 16; |
36 |
use Test::More tests => 17; |
37 |
|
37 |
|
38 |
use Test::Warn; |
38 |
use Test::Warn; |
39 |
|
39 |
|
Lines 984-997
subtest 'tests for GetMarcItem' => sub {
Link Here
|
984 |
cn_sort => "", |
984 |
cn_sort => "", |
985 |
} |
985 |
} |
986 |
}); |
986 |
}); |
987 |
my ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); |
|
|
988 |
my $get_itemnumber = $item1->itemnumber; |
987 |
my $get_itemnumber = $item1->itemnumber; |
989 |
my $item1_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item1->itemnumber ); |
988 |
my $item1_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item1->itemnumber ); |
990 |
my (undef, undef, $itemnumber2 ) = AddItemFromMarc( $item1_marc, $biblio->{biblionumber} ); |
989 |
my (undef, undef, $itemnumber2 ) = AddItemFromMarc( $item1_marc, $biblio->{biblionumber} ); |
991 |
my $item2_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $itemnumber2 ); |
990 |
my $item2_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $itemnumber2 ); |
992 |
($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); #get itemnumber tag |
991 |
my ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); #get itemnumber tag |
993 |
$item1_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #and remove it |
992 |
$item1_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #and remove it |
994 |
$item2_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #because it won't match |
993 |
$item2_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #because it won't match |
995 |
is_deeply( $item1_marc, $item2_marc, "The Marc should match if the items are the same"); |
994 |
is_deeply( $item1_marc, $item2_marc, "The Marc should match if the items are the same"); |
996 |
$schema->storage->txn_rollback; |
995 |
$schema->storage->txn_rollback; |
997 |
}; |
996 |
}; |
998 |
- |
997 |
|
|
|
998 |
subtest 'tests for GetMarcItemFields' => sub { |
999 |
plan tests => 5; |
1000 |
$schema->storage->txn_begin; |
1001 |
|
1002 |
#Setup the information we need |
1003 |
my $builder = t::lib::TestBuilder->new; |
1004 |
my $library = $builder->build({ source => 'Branch', }); |
1005 |
my $itemtype = $builder->build({ source => 'Itemtype', }); |
1006 |
my $biblio = $builder->build({ |
1007 |
source => 'Biblio', |
1008 |
value=>{ |
1009 |
frameworkcode => "", |
1010 |
} |
1011 |
}); |
1012 |
my $biblioitem = $builder->build({ |
1013 |
source => 'Biblioitem', |
1014 |
value => { biblionumber => $biblio->{biblionumber} }, |
1015 |
}); |
1016 |
my @items; |
1017 |
my $item1 = $builder->build_object({ |
1018 |
class => 'Koha::Items', |
1019 |
value => { |
1020 |
biblionumber => $biblio->{biblionumber}, |
1021 |
biblioitemnumber => $biblioitem->{biblioitemnumber}, |
1022 |
itype => $itemtype->{itemtype}, |
1023 |
homebranch => $library->{branchcode}, |
1024 |
barcode => undef, |
1025 |
restricted => 1, |
1026 |
itemcallnumber => "", |
1027 |
cn_sort => "", |
1028 |
withdrawn => 0, |
1029 |
} |
1030 |
}); |
1031 |
push @items, GetItem( $item1->itemnumber ); |
1032 |
my $item2 = $builder->build_object({ |
1033 |
class => 'Koha::Items', |
1034 |
value => { |
1035 |
biblionumber => $biblio->{biblionumber}, |
1036 |
biblioitemnumber => $biblioitem->{biblioitemnumber}, |
1037 |
itype => $itemtype->{itemtype}, |
1038 |
homebranch => $library->{branchcode}, |
1039 |
barcode => undef, |
1040 |
restricted => 1, |
1041 |
itemcallnumber => "", |
1042 |
cn_sort => "", |
1043 |
withdrawn => 0, |
1044 |
} |
1045 |
}); |
1046 |
push @items, GetItem( $item2->itemnumber ); |
1047 |
my $item3 = $builder->build_object({ |
1048 |
class => 'Koha::Items', |
1049 |
value => { |
1050 |
biblionumber => $biblio->{biblionumber}, |
1051 |
biblioitemnumber => $biblioitem->{biblioitemnumber}, |
1052 |
itype => $itemtype->{itemtype}, |
1053 |
homebranch => $library->{branchcode}, |
1054 |
barcode => undef, |
1055 |
restricted => 1, |
1056 |
itemcallnumber => "", |
1057 |
cn_sort => "", |
1058 |
withdrawn => 1, |
1059 |
} |
1060 |
}); |
1061 |
push @items, GetItem( $item3->itemnumber ); |
1062 |
|
1063 |
#Get the marc for our items individually for comparison later |
1064 |
my $item1_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item1->itemnumber ); |
1065 |
my $item2_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item2->itemnumber ); |
1066 |
my $item3_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item3->itemnumber ); |
1067 |
my ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); #get itemnumber tag |
1068 |
$item1_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #and remove it |
1069 |
$item2_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #because it won't match |
1070 |
|
1071 |
#Testing with hidden items |
1072 |
my $opachiddenitems = " |
1073 |
withdrawn: [1]"; |
1074 |
my $hidingrules = YAML::Load($opachiddenitems); |
1075 |
my $marc_items = C4::Items::GetMarcItemFields( $biblio->{biblionumber}, [], $hidingrules ); |
1076 |
@$marc_items[0]->delete_subfield(code => $item_num_subfield); |
1077 |
@$marc_items[1]->delete_subfield(code => $item_num_subfield); |
1078 |
is(scalar @$marc_items, 2, "We should not get a hidden item"); |
1079 |
is_deeply( $item1_marc->field($itemtag), @$marc_items[0], "We should get the first item"); |
1080 |
is_deeply( $item2_marc->field($itemtag), @$marc_items[1], "We should also get the second item"); |
1081 |
|
1082 |
#Testing with specified items |
1083 |
$marc_items = C4::Items::GetMarcItemFields( $biblio->{biblionumber}, [ $item3->itemnumber ], undef ); |
1084 |
is(scalar @$marc_items,1,"We should only get the specifically requested item"); |
1085 |
is_deeply( $item3_marc->field($itemtag), @$marc_items[0], "We should get the third item when explicitly requested"); |
1086 |
|
1087 |
$schema->storage->txn_rollback; |
1088 |
}; |