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