| Lines 34-40
          use Koha::AuthorisedValues;
      
      
        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 => 16; | 37 | use Test::More tests => 17; | 
        
          | 38 |  | 38 |  | 
        
          | 39 | use Test::Warn; | 39 | use Test::Warn; | 
        
          | 40 |  | 40 |  | 
  
    | Lines 1023-1036
          subtest 'tests for GetMarcItem' => sub {
      
      
        Link Here | 
        
          | 1023 |             cn_sort          => "", | 1023 |             cn_sort          => "", | 
        
          | 1024 |         } | 1024 |         } | 
        
          | 1025 |     }); | 1025 |     }); | 
            
              | 1026 |     my ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); |  |  | 
        
          | 1027 |     my $get_itemnumber = $item1->itemnumber; | 1026 |     my $get_itemnumber = $item1->itemnumber; | 
        
          | 1028 |     my $item1_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item1->itemnumber ); | 1027 |     my $item1_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item1->itemnumber ); | 
        
          | 1029 |     my (undef, undef, $itemnumber2 ) = AddItemFromMarc( $item1_marc, $biblio->{biblionumber} ); | 1028 |     my (undef, undef, $itemnumber2 ) = AddItemFromMarc( $item1_marc, $biblio->{biblionumber} ); | 
        
          | 1030 |     my $item2_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $itemnumber2 ); | 1029 |     my $item2_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $itemnumber2 ); | 
          
            
              | 1031 |     ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); #get itemnumber tag | 1030 |     my ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); #get itemnumber tag | 
        
          | 1032 |     $item1_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #and remove it | 1031 |     $item1_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #and remove it | 
        
          | 1033 |     $item2_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #because it won't match | 1032 |     $item2_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #because it won't match | 
        
          | 1034 |     is_deeply( $item1_marc, $item2_marc, "The Marc should match if the items are the same"); | 1033 |     is_deeply( $item1_marc, $item2_marc, "The Marc should match if the items are the same"); | 
        
          | 1035 |     $schema->storage->txn_rollback; | 1034 |     $schema->storage->txn_rollback; | 
        
          | 1036 | }; | 1035 | }; | 
          
            
              | 1037 | -  | 1036 |  | 
            
              |  |  | 1037 | subtest 'tests for GetMarcItemFields' => sub { | 
            
              | 1038 |     plan tests => 5; | 
            
              | 1039 |     $schema->storage->txn_begin; | 
            
              | 1040 |  | 
            
              | 1041 |     #Setup the information we need | 
            
              | 1042 |     my $builder  = t::lib::TestBuilder->new; | 
            
              | 1043 |     my $library  = $builder->build({ source => 'Branch', }); | 
            
              | 1044 |     my $itemtype = $builder->build({ source => 'Itemtype', }); | 
            
              | 1045 |     my $biblio   = $builder->build({ | 
            
              | 1046 |         source => 'Biblio', | 
            
              | 1047 |         value=>{ | 
            
              | 1048 |             frameworkcode => "", | 
            
              | 1049 |         } | 
            
              | 1050 |     }); | 
            
              | 1051 |     my $biblioitem = $builder->build({ | 
            
              | 1052 |         source => 'Biblioitem', | 
            
              | 1053 |         value => { biblionumber => $biblio->{biblionumber} }, | 
            
              | 1054 |     }); | 
            
              | 1055 |     my @items; | 
            
              | 1056 |     my $item1 = $builder->build_object({ | 
            
              | 1057 |         class => 'Koha::Items', | 
            
              | 1058 |         value => { | 
            
              | 1059 |             biblionumber     => $biblio->{biblionumber}, | 
            
              | 1060 |             biblioitemnumber => $biblioitem->{biblioitemnumber}, | 
            
              | 1061 |             itype            => $itemtype->{itemtype}, | 
            
              | 1062 |             homebranch       => $library->{branchcode}, | 
            
              | 1063 |             barcode          => undef, | 
            
              | 1064 |             restricted       => 1, | 
            
              | 1065 |             itemcallnumber   => "", | 
            
              | 1066 |             cn_sort          => "", | 
            
              | 1067 |             withdrawn        => 0, | 
            
              | 1068 |         } | 
            
              | 1069 |     }); | 
            
              | 1070 |     push @items, GetItem( $item1->itemnumber ); | 
            
              | 1071 |     my $item2 = $builder->build_object({ | 
            
              | 1072 |         class => 'Koha::Items', | 
            
              | 1073 |         value => { | 
            
              | 1074 |             biblionumber     => $biblio->{biblionumber}, | 
            
              | 1075 |             biblioitemnumber => $biblioitem->{biblioitemnumber}, | 
            
              | 1076 |             itype            => $itemtype->{itemtype}, | 
            
              | 1077 |             homebranch       => $library->{branchcode}, | 
            
              | 1078 |             barcode          => undef, | 
            
              | 1079 |             restricted       => 1, | 
            
              | 1080 |             itemcallnumber   => "", | 
            
              | 1081 |             cn_sort          => "", | 
            
              | 1082 |             withdrawn        => 0, | 
            
              | 1083 |         } | 
            
              | 1084 |     }); | 
            
              | 1085 |     push @items, GetItem( $item2->itemnumber ); | 
            
              | 1086 |     my $item3 = $builder->build_object({ | 
            
              | 1087 |         class => 'Koha::Items', | 
            
              | 1088 |         value => { | 
            
              | 1089 |             biblionumber     => $biblio->{biblionumber}, | 
            
              | 1090 |             biblioitemnumber => $biblioitem->{biblioitemnumber}, | 
            
              | 1091 |             itype            => $itemtype->{itemtype}, | 
            
              | 1092 |             homebranch       => $library->{branchcode}, | 
            
              | 1093 |             barcode          => undef, | 
            
              | 1094 |             restricted       => 1, | 
            
              | 1095 |             itemcallnumber   => "", | 
            
              | 1096 |             cn_sort          => "", | 
            
              | 1097 |             withdrawn        => 1, | 
            
              | 1098 |         } | 
            
              | 1099 |     }); | 
            
              | 1100 |     push @items, GetItem( $item3->itemnumber ); | 
            
              | 1101 |  | 
            
              | 1102 |     #Get the marc for our items individually for comparison later | 
            
              | 1103 |     my $item1_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item1->itemnumber ); | 
            
              | 1104 |     my $item2_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item2->itemnumber ); | 
            
              | 1105 |     my $item3_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item3->itemnumber ); | 
            
              | 1106 |     my ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); #get itemnumber tag | 
            
              | 1107 |     $item1_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #and remove it | 
            
              | 1108 |     $item2_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #because it won't match | 
            
              | 1109 |  | 
            
              | 1110 |     #Testing with hidden items | 
            
              | 1111 |     my $opachiddenitems = " | 
            
              | 1112 |         withdrawn: [1]"; | 
            
              | 1113 |     my $hidingrules = YAML::Load($opachiddenitems); | 
            
              | 1114 |     my $marc_items = C4::Items::GetMarcItemFields( $biblio->{biblionumber}, [], $hidingrules ); | 
            
              | 1115 |     @$marc_items[0]->delete_subfield(code => $item_num_subfield); | 
            
              | 1116 |     @$marc_items[1]->delete_subfield(code => $item_num_subfield); | 
            
              | 1117 |     is(scalar @$marc_items, 2, "We should not get a hidden item"); | 
            
              | 1118 |     is_deeply( $item1_marc->field($itemtag), @$marc_items[0], "We should get the first item"); | 
            
              | 1119 |     is_deeply( $item2_marc->field($itemtag), @$marc_items[1], "We should also get the second item"); | 
            
              | 1120 |  | 
            
              | 1121 |     #Testing with specified items | 
            
              | 1122 |     $marc_items = C4::Items::GetMarcItemFields( $biblio->{biblionumber}, [ $item3->itemnumber ], undef ); | 
            
              | 1123 |     is(scalar @$marc_items,1,"We should only get the specifically requested item"); | 
            
              | 1124 |     is_deeply( $item3_marc->field($itemtag), @$marc_items[0], "We should get the third item when explicitly requested"); | 
            
              | 1125 |  | 
            
              | 1126 |     $schema->storage->txn_rollback; | 
            
              | 1127 | }; |