| 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 | use Test::Warn; | 39 | use Test::Warn; | 
        
          | 39 |  | 40 |  | 
        
          | 40 | my $schema = Koha::Database->new->schema; | 41 | my $schema = Koha::Database->new->schema; | 
  
    | Lines 888-899
          subtest 'tests for GetMarcItem' => sub {
      
      
        Link Here | 
        
          | 888 |             cn_sort          => "", | 889 |             cn_sort          => "", | 
        
          | 889 |         } | 890 |         } | 
        
          | 890 |     }); | 891 |     }); | 
            
              | 891 |     my ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); |  |  | 
        
          | 892 |     my $get_itemnumber = $item1->itemnumber; | 892 |     my $get_itemnumber = $item1->itemnumber; | 
        
          | 893 |     my $item1_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item1->itemnumber ); | 893 |     my $item1_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item1->itemnumber ); | 
        
          | 894 |     my (undef, undef, $itemnumber2 ) = AddItemFromMarc( $item1_marc, $biblio->{biblionumber} ); | 894 |     my (undef, undef, $itemnumber2 ) = AddItemFromMarc( $item1_marc, $biblio->{biblionumber} ); | 
        
          | 895 |     my $item2_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $itemnumber2 ); | 895 |     my $item2_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $itemnumber2 ); | 
          
            
              | 896 |     ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); #get itemnumber tag | 896 |     my ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); #get itemnumber tag | 
        
          | 897 |     $item1_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #and remove it | 897 |     $item1_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #and remove it | 
        
          | 898 |     $item2_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #because it won't match | 898 |     $item2_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #because it won't match | 
        
          | 899 |     is_deeply( $item1_marc, $item2_marc, "The Marc should match if the items are the same"); | 899 |     is_deeply( $item1_marc, $item2_marc, "The Marc should match if the items are the same"); | 
  
    | Lines 901-906
          subtest 'tests for GetMarcItem' => sub {
      
      
        Link Here | 
        
          | 901 |  | 901 |  | 
        
          | 902 | }; | 902 | }; | 
        
          | 903 |  | 903 |  | 
            
              |  |  | 904 | subtest 'tests for GetMarcItemFields' => sub { | 
            
              | 905 |  | 
            
              | 906 |     plan tests => 5; | 
            
              | 907 |  | 
            
              | 908 |     $schema->storage->txn_begin; | 
            
              | 909 |     #Setup the information we need | 
            
              | 910 |     my $builder  = t::lib::TestBuilder->new; | 
            
              | 911 |     my $library  = $builder->build({ source => 'Branch', }); | 
            
              | 912 |     my $itemtype = $builder->build({ source => 'Itemtype', }); | 
            
              | 913 |     my $biblio   = $builder->build({ | 
            
              | 914 |         source => 'Biblio', | 
            
              | 915 |         value=>{ | 
            
              | 916 |             frameworkcode => "", | 
            
              | 917 |         } | 
            
              | 918 |     }); | 
            
              | 919 |     my $biblioitem = $builder->build({ | 
            
              | 920 |         source => 'Biblioitem', | 
            
              | 921 |         value => { biblionumber => $biblio->{biblionumber} }, | 
            
              | 922 |     }); | 
            
              | 923 |     my @items; | 
            
              | 924 |     my $item1 = $builder->build_object({ | 
            
              | 925 |         class => 'Koha::Items', | 
            
              | 926 |         value => { | 
            
              | 927 |             biblionumber     => $biblio->{biblionumber}, | 
            
              | 928 |             biblioitemnumber => $biblioitem->{biblioitemnumber}, | 
            
              | 929 |             itype            => $itemtype->{itemtype}, | 
            
              | 930 |             homebranch       => $library->{branchcode}, | 
            
              | 931 |             barcode          => undef, | 
            
              | 932 |             restricted       => 1, | 
            
              | 933 |             itemcallnumber   => "", | 
            
              | 934 |             cn_sort          => "", | 
            
              | 935 |             withdrawn        => 0, | 
            
              | 936 |         } | 
            
              | 937 |     }); | 
            
              | 938 |     push @items, GetItem( $item1->itemnumber ); | 
            
              | 939 |     my $item2 = $builder->build_object({ | 
            
              | 940 |         class => 'Koha::Items', | 
            
              | 941 |         value => { | 
            
              | 942 |             biblionumber     => $biblio->{biblionumber}, | 
            
              | 943 |             biblioitemnumber => $biblioitem->{biblioitemnumber}, | 
            
              | 944 |             itype            => $itemtype->{itemtype}, | 
            
              | 945 |             homebranch       => $library->{branchcode}, | 
            
              | 946 |             barcode          => undef, | 
            
              | 947 |             restricted       => 1, | 
            
              | 948 |             itemcallnumber   => "", | 
            
              | 949 |             cn_sort          => "", | 
            
              | 950 |             withdrawn        => 0, | 
            
              | 951 |         } | 
            
              | 952 |     }); | 
            
              | 953 |     push @items, GetItem( $item2->itemnumber ); | 
            
              | 954 |     my $item3 = $builder->build_object({ | 
            
              | 955 |         class => 'Koha::Items', | 
            
              | 956 |         value => { | 
            
              | 957 |             biblionumber     => $biblio->{biblionumber}, | 
            
              | 958 |             biblioitemnumber => $biblioitem->{biblioitemnumber}, | 
            
              | 959 |             itype            => $itemtype->{itemtype}, | 
            
              | 960 |             homebranch       => $library->{branchcode}, | 
            
              | 961 |             barcode          => undef, | 
            
              | 962 |             restricted       => 1, | 
            
              | 963 |             itemcallnumber   => "", | 
            
              | 964 |             cn_sort          => "", | 
            
              | 965 |             withdrawn        => 1, | 
            
              | 966 |         } | 
            
              | 967 |     }); | 
            
              | 968 |     push @items, GetItem( $item3->itemnumber ); | 
            
              | 969 |  | 
            
              | 970 |     #Get the marc for our items individually for comparison later | 
            
              | 971 |     my $item1_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item1->itemnumber ); | 
            
              | 972 |     my $item2_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item2->itemnumber ); | 
            
              | 973 |     my $item3_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item3->itemnumber ); | 
            
              | 974 |     my ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); #get itemnumber tag | 
            
              | 975 |     $item1_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #and remove it | 
            
              | 976 |     $item2_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #because it won't match | 
            
              | 977 |  | 
            
              | 978 |     #Testing with hidden items | 
            
              | 979 |     my $opachiddenitems = " | 
            
              | 980 |         withdrawn: [1]"; | 
            
              | 981 |     my $hidingrules = YAML::Load($opachiddenitems); | 
            
              | 982 |     my $marc_items = C4::Items::GetMarcItemFields( $biblio->{biblionumber}, [], $hidingrules ); | 
            
              | 983 |     @$marc_items[0]->delete_subfield(code => $item_num_subfield); | 
            
              | 984 |     @$marc_items[1]->delete_subfield(code => $item_num_subfield); | 
            
              | 985 |     is(scalar @$marc_items, 2, "We should not get a hidden item"); | 
            
              | 986 |     is_deeply( $item1_marc->field($itemtag), @$marc_items[0], "We should get the first item"); | 
            
              | 987 |     is_deeply( $item2_marc->field($itemtag), @$marc_items[1], "We should also get the second item"); | 
            
              | 988 |  | 
            
              | 989 |     #Testing with specified items | 
            
              | 990 |     $marc_items = C4::Items::GetMarcItemFields( $biblio->{biblionumber}, [ $item3->itemnumber ], undef ); | 
            
              | 991 |     is(scalar @$marc_items,1,"We should only get the specifically requested item"); | 
            
              | 992 |     is_deeply( $item3_marc->field($itemtag), @$marc_items[0], "We should get the third item when explicitly requested"); | 
            
              | 993 |  | 
            
              | 994 |     $schema->storage->txn_rollback; | 
            
              | 995 |  | 
            
              | 996 | }; | 
            
              | 997 |  | 
        
          | 904 | # Helper method to set up a Biblio. | 998 | # Helper method to set up a Biblio. | 
        
          | 905 | sub get_biblio { | 999 | sub get_biblio { | 
        
          | 906 |     my ( $frameworkcode ) = @_; | 1000 |     my ( $frameworkcode ) = @_; | 
            
              | 907 | -  |  |  |