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