|
Lines 34-40
use C4::Items;
Link Here
|
| 34 |
use t::lib::Mocks; |
34 |
use t::lib::Mocks; |
| 35 |
use t::lib::TestBuilder; |
35 |
use t::lib::TestBuilder; |
| 36 |
|
36 |
|
| 37 |
use Test::More tests => 13; |
37 |
use Test::More tests => 14; |
| 38 |
|
38 |
|
| 39 |
use Test::Warn; |
39 |
use Test::Warn; |
| 40 |
|
40 |
|
|
Lines 862-873
subtest 'tests for GetMarcItem' => sub {
Link Here
|
| 862 |
cn_sort => "", |
862 |
cn_sort => "", |
| 863 |
} |
863 |
} |
| 864 |
}); |
864 |
}); |
| 865 |
my ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); |
|
|
| 866 |
my $get_itemnumber = $item1->itemnumber; |
865 |
my $get_itemnumber = $item1->itemnumber; |
| 867 |
my $item1_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item1->itemnumber ); |
866 |
my $item1_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item1->itemnumber ); |
| 868 |
my (undef, undef, $itemnumber2 ) = AddItemFromMarc( $item1_marc, $biblio->{biblionumber} ); |
867 |
my (undef, undef, $itemnumber2 ) = AddItemFromMarc( $item1_marc, $biblio->{biblionumber} ); |
| 869 |
my $item2_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $itemnumber2 ); |
868 |
my $item2_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $itemnumber2 ); |
| 870 |
($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); #get itemnumber tag |
869 |
my ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); #get itemnumber tag |
| 871 |
$item1_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #and remove it |
870 |
$item1_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #and remove it |
| 872 |
$item2_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #because it won't match |
871 |
$item2_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #because it won't match |
| 873 |
is_deeply( $item1_marc, $item2_marc, "The Marc should match if the items are the same"); |
872 |
is_deeply( $item1_marc, $item2_marc, "The Marc should match if the items are the same"); |
|
Lines 875-880
subtest 'tests for GetMarcItem' => sub {
Link Here
|
| 875 |
|
874 |
|
| 876 |
}; |
875 |
}; |
| 877 |
|
876 |
|
|
|
877 |
subtest 'tests for GetMarcItemFields' => sub { |
| 878 |
|
| 879 |
plan tests => 5; |
| 880 |
|
| 881 |
$schema->storage->txn_begin; |
| 882 |
#Setup the information we need |
| 883 |
my $builder = t::lib::TestBuilder->new; |
| 884 |
my $library = $builder->build({ source => 'Branch', }); |
| 885 |
my $itemtype = $builder->build({ source => 'Itemtype', }); |
| 886 |
my $biblio = $builder->build({ |
| 887 |
source => 'Biblio', |
| 888 |
value=>{ |
| 889 |
frameworkcode => "", |
| 890 |
} |
| 891 |
}); |
| 892 |
my $biblioitem = $builder->build({ |
| 893 |
source => 'Biblioitem', |
| 894 |
value => { biblionumber => $biblio->{biblionumber} }, |
| 895 |
}); |
| 896 |
my @items; |
| 897 |
my $item1 = $builder->build_object({ |
| 898 |
class => 'Koha::Items', |
| 899 |
value => { |
| 900 |
biblionumber => $biblio->{biblionumber}, |
| 901 |
biblioitemnumber => $biblioitem->{biblioitemnumber}, |
| 902 |
itype => $itemtype->{itemtype}, |
| 903 |
homebranch => $library->{branchcode}, |
| 904 |
barcode => undef, |
| 905 |
restricted => 1, |
| 906 |
itemcallnumber => "", |
| 907 |
cn_sort => "", |
| 908 |
withdrawn => 0, |
| 909 |
} |
| 910 |
}); |
| 911 |
push @items, GetItem( $item1->itemnumber ); |
| 912 |
my $item2 = $builder->build_object({ |
| 913 |
class => 'Koha::Items', |
| 914 |
value => { |
| 915 |
biblionumber => $biblio->{biblionumber}, |
| 916 |
biblioitemnumber => $biblioitem->{biblioitemnumber}, |
| 917 |
itype => $itemtype->{itemtype}, |
| 918 |
homebranch => $library->{branchcode}, |
| 919 |
barcode => undef, |
| 920 |
restricted => 1, |
| 921 |
itemcallnumber => "", |
| 922 |
cn_sort => "", |
| 923 |
withdrawn => 0, |
| 924 |
} |
| 925 |
}); |
| 926 |
push @items, GetItem( $item2->itemnumber ); |
| 927 |
my $item3 = $builder->build_object({ |
| 928 |
class => 'Koha::Items', |
| 929 |
value => { |
| 930 |
biblionumber => $biblio->{biblionumber}, |
| 931 |
biblioitemnumber => $biblioitem->{biblioitemnumber}, |
| 932 |
itype => $itemtype->{itemtype}, |
| 933 |
homebranch => $library->{branchcode}, |
| 934 |
barcode => undef, |
| 935 |
restricted => 1, |
| 936 |
itemcallnumber => "", |
| 937 |
cn_sort => "", |
| 938 |
withdrawn => 1, |
| 939 |
} |
| 940 |
}); |
| 941 |
push @items, GetItem( $item3->itemnumber ); |
| 942 |
|
| 943 |
#Get the marc for our items individually for comparison later |
| 944 |
my $item1_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item1->itemnumber ); |
| 945 |
my $item2_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item2->itemnumber ); |
| 946 |
my $item3_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item3->itemnumber ); |
| 947 |
my ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); #get itemnumber tag |
| 948 |
$item1_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #and remove it |
| 949 |
$item2_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #because it won't match |
| 950 |
|
| 951 |
#Testing with hidden items |
| 952 |
my $opachiddenitems = " |
| 953 |
withdrawn: [1]"; |
| 954 |
my $hidingrules = YAML::Load($opachiddenitems); |
| 955 |
my $marc_items = C4::Items::GetMarcItemFields( $biblio->{biblionumber}, [], $hidingrules ); |
| 956 |
@$marc_items[0]->delete_subfield(code => $item_num_subfield); |
| 957 |
@$marc_items[1]->delete_subfield(code => $item_num_subfield); |
| 958 |
is(scalar @$marc_items, 2, "We should not get a hidden item"); |
| 959 |
is_deeply( $item1_marc->field($itemtag), @$marc_items[0], "We should get the first item"); |
| 960 |
is_deeply( $item2_marc->field($itemtag), @$marc_items[1], "We should also get the second item"); |
| 961 |
|
| 962 |
#Testing with specified items |
| 963 |
$marc_items = C4::Items::GetMarcItemFields( $biblio->{biblionumber}, [ $item3->itemnumber ], undef ); |
| 964 |
is(scalar @$marc_items,1,"We should only get the specifically requested item"); |
| 965 |
is_deeply( $item3_marc->field($itemtag), @$marc_items[0], "We should get the third item when explicitly requested"); |
| 966 |
|
| 967 |
$schema->storage->txn_rollback; |
| 968 |
|
| 969 |
}; |
| 970 |
|
| 878 |
# Helper method to set up a Biblio. |
971 |
# Helper method to set up a Biblio. |
| 879 |
sub get_biblio { |
972 |
sub get_biblio { |
| 880 |
my ( $frameworkcode ) = @_; |
973 |
my ( $frameworkcode ) = @_; |
| 881 |
- |
|
|