| Lines 19-25
          
      
      
        Link Here | 
        
          | 19 |  | 19 |  | 
        
          | 20 | use Modern::Perl; | 20 | use Modern::Perl; | 
        
          | 21 |  | 21 |  | 
          
            
              | 22 | use Test::More tests => 26; | 22 | use Test::More tests => 27; | 
        
          | 23 |  | 23 |  | 
        
          | 24 | use Test::MockModule; | 24 | use Test::MockModule; | 
        
          | 25 | use Test::Exception; | 25 | use Test::Exception; | 
  
    | Lines 69-74
          is( Koha::Items->search->count, $nb_of_items + 2, 'The 2 items should have been
      
      
        Link Here | 
        
          | 69 | my $retrieved_item_1 = Koha::Items->find( $new_item_1->itemnumber ); | 69 | my $retrieved_item_1 = Koha::Items->find( $new_item_1->itemnumber ); | 
        
          | 70 | is( $retrieved_item_1->barcode, $new_item_1->barcode, 'Find a item by id should return the correct item' ); | 70 | is( $retrieved_item_1->barcode, $new_item_1->barcode, 'Find a item by id should return the correct item' ); | 
        
          | 71 |  | 71 |  | 
            
              |  |  | 72 | subtest 'search' => sub { | 
            
              | 73 |  | 
            
              | 74 |     plan tests => 9; | 
            
              | 75 |     $schema->storage->txn_begin; | 
            
              | 76 |  | 
            
              | 77 |     my $patron = $builder->build_object( { class => 'Koha::Patrons' } ); | 
            
              | 78 |     my $patron_2 = $builder->build_object( { class => 'Koha::Patrons' } ); | 
            
              | 79 |     t::lib::Mocks::mock_userenv( { branchcode => $patron->branchcode } ); | 
            
              | 80 |  | 
            
              | 81 |     my $library_1 = $builder->build( { source => 'Branch' } ); | 
            
              | 82 |     my $library_2 = $builder->build( { source => 'Branch' } ); | 
            
              | 83 |  | 
            
              | 84 |     my $biblio = $builder->build_sample_biblio(); | 
            
              | 85 |  | 
            
              | 86 |     my $item_1 = $builder->build_sample_item({ biblionumber => $biblio->biblionumber, }); | 
            
              | 87 |     my $item_2 = $builder->build_sample_item({ biblionumber => $biblio->biblionumber, }); | 
            
              | 88 |  | 
            
              | 89 |     my $available_items = Koha::Items->search({ | 
            
              | 90 |         _status => 'available', | 
            
              | 91 |         biblionumber => $biblio->biblionumber, | 
            
              | 92 |     }); | 
            
              | 93 |  | 
            
              | 94 |     ok($available_items->count == 2, "Filtered to 2 available items"); | 
            
              | 95 |  | 
            
              | 96 |     my $item_3 = $builder->build_sample_item({ | 
            
              | 97 |         biblionumber => $biblio->biblionumber, | 
            
              | 98 |         itemlost => 1, | 
            
              | 99 |     }); | 
            
              | 100 |  | 
            
              | 101 |     my $item_4 = $builder->build_sample_item({ | 
            
              | 102 |         biblionumber => $biblio->biblionumber, | 
            
              | 103 |         damaged => 1, | 
            
              | 104 |     }); | 
            
              | 105 |  | 
            
              | 106 |     my $item_5 = $builder->build_sample_item({ | 
            
              | 107 |         biblionumber => $biblio->biblionumber, | 
            
              | 108 |         withdrawn => 1, | 
            
              | 109 |     }); | 
            
              | 110 |  | 
            
              | 111 |     my $item_6 = $builder->build_sample_item({ | 
            
              | 112 |         biblionumber => $biblio->biblionumber, | 
            
              | 113 |         notforloan => 1, | 
            
              | 114 |     }); | 
            
              | 115 |  | 
            
              | 116 |     my $lost_items = Koha::Items->search({ | 
            
              | 117 |         _status => 'lost', | 
            
              | 118 |         biblionumber => $biblio->biblionumber, | 
            
              | 119 |     }); | 
            
              | 120 |  | 
            
              | 121 |     my $damaged_items = Koha::Items->search({ | 
            
              | 122 |         _status => 'damaged', | 
            
              | 123 |         biblionumber => $biblio->biblionumber, | 
            
              | 124 |     }); | 
            
              | 125 |  | 
            
              | 126 |     my $withdrawn_items = Koha::Items->search({ | 
            
              | 127 |         _status => 'withdrawn', | 
            
              | 128 |         biblionumber => $biblio->biblionumber, | 
            
              | 129 |     }); | 
            
              | 130 |  | 
            
              | 131 |     my $notforloan_items = Koha::Items->search({ | 
            
              | 132 |         _status => 'not_for_loan', | 
            
              | 133 |         biblionumber => $biblio->biblionumber, | 
            
              | 134 |     }); | 
            
              | 135 |  | 
            
              | 136 |     ok($lost_items->count == 1, "Filtered to 1 lost item"); | 
            
              | 137 |     ok($damaged_items->count == 1, "Filtered to 1 damaged item"); | 
            
              | 138 |     ok($withdrawn_items->count == 1, "Filtered to 1 withdrawn item"); | 
            
              | 139 |     ok($notforloan_items->count == 1, "Filtered to 1 notforloan item"); | 
            
              | 140 |  | 
            
              | 141 |     C4::Circulation::AddIssue( $patron, $item_1->barcode ); | 
            
              | 142 |  | 
            
              | 143 |     my $checked_out_items = Koha::Items->search({ | 
            
              | 144 |         _status => 'checked_out', | 
            
              | 145 |         biblionumber => $biblio->biblionumber, | 
            
              | 146 |     }); | 
            
              | 147 |  | 
            
              | 148 |     ok($checked_out_items->count == 1, "Filtered to 1 checked out item"); | 
            
              | 149 |  | 
            
              | 150 |     my $transfer_1 = $builder->build_object( | 
            
              | 151 |         { | 
            
              | 152 |             class => 'Koha::Item::Transfers', | 
            
              | 153 |             value => { | 
            
              | 154 |                 itemnumber    => $item_2->itemnumber, | 
            
              | 155 |                 frombranch    => $library_1->{branchcode}, | 
            
              | 156 |                 tobranch      => $library_2->{branchcode}, | 
            
              | 157 |             } | 
            
              | 158 |         } | 
            
              | 159 |     ); | 
            
              | 160 |  | 
            
              | 161 |     my $in_transit_items = Koha::Items->search({ | 
            
              | 162 |         _status => 'in_transit', | 
            
              | 163 |         biblionumber => $biblio->biblionumber, | 
            
              | 164 |     }); | 
            
              | 165 |  | 
            
              | 166 |     ok($in_transit_items->count == 1, "Filtered to 1 in transit item"); | 
            
              | 167 |  | 
            
              | 168 |     my $item_7 = $builder->build_sample_item({ biblionumber => $biblio->biblionumber, }); | 
            
              | 169 |  | 
            
              | 170 |     my $hold_1 = $builder->build( | 
            
              | 171 |         { | 
            
              | 172 |             source => 'Reserve', | 
            
              | 173 |             value  => { | 
            
              | 174 |                 itemnumber => $item_7->itemnumber, reservedate => dt_from_string, | 
            
              | 175 |             } | 
            
              | 176 |         } | 
            
              | 177 |     ); | 
            
              | 178 |  | 
            
              | 179 |     my $on_hold_items = Koha::Items->search({ | 
            
              | 180 |         _status => 'on_hold', | 
            
              | 181 |         biblionumber => $biblio->biblionumber, | 
            
              | 182 |     }); | 
            
              | 183 |  | 
            
              | 184 |     ok($on_hold_items->count == 1, "Filtered to 1 on hold item"); | 
            
              | 185 |  | 
            
              | 186 |     my $item_8 = $builder->build_sample_item({ | 
            
              | 187 |         biblionumber => $biblio->biblionumber, | 
            
              | 188 |         restricted => 1, | 
            
              | 189 |     }); | 
            
              | 190 |  | 
            
              | 191 |     my $restricted_items = Koha::Items->search({ | 
            
              | 192 |         _status => 'restricted', | 
            
              | 193 |         biblionumber => $biblio->biblionumber, | 
            
              | 194 |     }); | 
            
              | 195 |  | 
            
              | 196 |     ok($restricted_items->count == 1, "Filtered to 1 restricted item"); | 
            
              | 197 |  | 
            
              | 198 |     $schema->storage->txn_rollback; | 
            
              | 199 | }; | 
            
              | 200 |  | 
        
          | 72 | subtest 'store' => sub { | 201 | subtest 'store' => sub { | 
        
          | 73 |     plan tests => 8; | 202 |     plan tests => 8; | 
        
          | 74 |  | 203 |  | 
            
              | 75 | -  |  |  |