View | Details | Raw Unified | Return to bug 37334
Collapse All | Expand All

(-)a/t/db_dependent/Koha/Items.t (-2 / +158 lines)
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
- 

Return to bug 37334