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

(-)a/t/db_dependent/StockRotationItems.t (-30 / +107 lines)
Lines 40-52 subtest 'Basic object tests' => sub { Link Here
40
40
41
    $schema->storage->txn_begin;
41
    $schema->storage->txn_begin;
42
42
43
    my $itm = $builder->build({ source => 'Item' });
43
    my $itm = $builder->build_sample_item;
44
    my $stage = $builder->build({ source => 'Stockrotationstage' });
44
    my $stage = $builder->build({ source => 'Stockrotationstage' });
45
45
46
    my $item = $builder->build({
46
    my $item = $builder->build({
47
        source => 'Stockrotationitem',
47
        source => 'Stockrotationitem',
48
        value  => {
48
        value  => {
49
            itemnumber_id => $itm->{itemnumber},
49
            itemnumber_id => $itm->itemnumber,
50
            stage_id      => $stage->{stage_id},
50
            stage_id      => $stage->{stage_id},
51
        },
51
        },
52
    });
52
    });
Lines 60-66 subtest 'Basic object tests' => sub { Link Here
60
60
61
    # Relationship to rota
61
    # Relationship to rota
62
    isa_ok( $sritem->itemnumber, 'Koha::Item', "Fetched related item." );
62
    isa_ok( $sritem->itemnumber, 'Koha::Item', "Fetched related item." );
63
    is( $sritem->itemnumber->itemnumber, $itm->{itemnumber}, "Related rota OK." );
63
    is( $sritem->itemnumber->itemnumber, $itm->itemnumber, "Related rota OK." );
64
64
65
    # Relationship to stage
65
    # Relationship to stage
66
    isa_ok( $sritem->stage, 'Koha::StockRotationStage', "Fetched related stage." );
66
    isa_ok( $sritem->stage, 'Koha::StockRotationStage', "Fetched related stage." );
Lines 77-83 subtest 'Tests for needs_repatriating' => sub { Link Here
77
    $schema->storage->txn_begin;
77
    $schema->storage->txn_begin;
78
78
79
    # Setup a pristine stockrotation context.
79
    # Setup a pristine stockrotation context.
80
    my $sritem = $builder->build({ source => 'Stockrotationitem' });
80
    my $sritem = $builder->build(
81
        {
82
            source => 'Stockrotationitem',
83
            value =>
84
              { itemnumber_id => $builder->build_sample_item->itemnumber }
85
        }
86
    );
81
    my $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
87
    my $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
82
    $dbitem->itemnumber->homebranch($dbitem->stage->branchcode_id);
88
    $dbitem->itemnumber->homebranch($dbitem->stage->branchcode_id);
83
    $dbitem->itemnumber->holdingbranch($dbitem->stage->branchcode_id);
89
    $dbitem->itemnumber->holdingbranch($dbitem->stage->branchcode_id);
Lines 130-136 subtest 'Tests for needs_repatriating' => sub { Link Here
130
subtest "Tests for repatriate." => sub {
136
subtest "Tests for repatriate." => sub {
131
    plan tests => 3;
137
    plan tests => 3;
132
    $schema->storage->txn_begin;
138
    $schema->storage->txn_begin;
133
    my $sritem = $builder->build({ source => 'Stockrotationitem' });
139
    my $sritem = $builder->build(
140
        {
141
            source => 'Stockrotationitem',
142
            value =>
143
              { itemnumber_id => $builder->build_sample_item->itemnumber }
144
        }
145
    );
134
    my $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
146
    my $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
135
    $dbitem->stage->position(1);
147
    $dbitem->stage->position(1);
136
    $dbitem->stage->duration(50);
148
    $dbitem->stage->duration(50);
Lines 151-168 subtest "Tests for needs_advancing." => sub { Link Here
151
    $schema->storage->txn_begin;
163
    $schema->storage->txn_begin;
152
164
153
    # Test behaviour of item freshly added to rota.
165
    # Test behaviour of item freshly added to rota.
154
    my $sritem = $builder->build({
166
    my $sritem = $builder->build(
155
        source => 'Stockrotationitem',
167
        {
156
        value  => { 'fresh' => 1, },
168
            source => 'Stockrotationitem',
157
    });
169
            value  => {
170
                'fresh'       => 1,
171
                itemnumber_id => $builder->build_sample_item->itemnumber
172
            },
173
        }
174
    );
158
    my $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
175
    my $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
159
    is($dbitem->needs_advancing, 1, "An item that is fresh will always need advancing.");
176
    is($dbitem->needs_advancing, 1, "An item that is fresh will always need advancing.");
160
177
161
    # Setup a pristine stockrotation context.
178
    # Setup a pristine stockrotation context.
162
    $sritem = $builder->build({
179
    $sritem = $builder->build(
163
        source => 'Stockrotationitem',
180
        {
164
        value => { 'fresh' => 0,}
181
            source => 'Stockrotationitem',
165
    });
182
            value  => {
183
                'fresh'       => 0,
184
                itemnumber_id => $builder->build_sample_item->itemnumber
185
            }
186
        }
187
    );
166
    $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
188
    $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
167
    $dbitem->itemnumber->homebranch($dbitem->stage->branchcode_id);
189
    $dbitem->itemnumber->homebranch($dbitem->stage->branchcode_id);
168
    $dbitem->itemnumber->holdingbranch($dbitem->stage->branchcode_id);
190
    $dbitem->itemnumber->holdingbranch($dbitem->stage->branchcode_id);
Lines 209-218 subtest "Tests for advance." => sub { Link Here
209
    plan tests => 15;
231
    plan tests => 15;
210
    $schema->storage->txn_begin;
232
    $schema->storage->txn_begin;
211
233
212
    my $sritem = $builder->build({
234
    my $sritem = $builder->build(
213
        source => 'Stockrotationitem',
235
        {
214
        value => { 'fresh' => 1 }
236
            source => 'Stockrotationitem',
215
    });
237
            value  => {
238
                'fresh'       => 1,
239
                itemnumber_id => $builder->build_sample_item->itemnumber
240
            }
241
        }
242
    );
216
    my $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
243
    my $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
217
    $dbitem->itemnumber->holdingbranch($dbitem->stage->branchcode_id);
244
    $dbitem->itemnumber->holdingbranch($dbitem->stage->branchcode_id);
218
    my $dbstage = $dbitem->stage;
245
    my $dbstage = $dbitem->stage;
Lines 284-305 subtest "Tests for investigate (singular)." => sub { Link Here
284
    $schema->storage->txn_begin;
311
    $schema->storage->txn_begin;
285
312
286
    # Test brand new item's investigation ['initiation']
313
    # Test brand new item's investigation ['initiation']
287
    my $sritem = $builder->build({ source => 'Stockrotationitem', value => { fresh => 1 } });
314
    my $sritem = $builder->build(
315
        {
316
            source => 'Stockrotationitem',
317
            value  => {
318
                fresh         => 1,
319
                itemnumber_id => $builder->build_sample_item->itemnumber
320
            }
321
        }
322
    );
288
    my $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
323
    my $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
289
    is($dbitem->investigate->{reason}, 'initiation', "fresh item initiates.");
324
    is($dbitem->investigate->{reason}, 'initiation', "fresh item initiates.");
290
325
291
    # Test brand new item at stagebranch ['initiation']
326
    # Test brand new item at stagebranch ['initiation']
292
    $sritem = $builder->build({ source => 'Stockrotationitem', value => { fresh => 1 } });
327
    $sritem = $builder->build(
328
        {
329
            source => 'Stockrotationitem',
330
            value  => {
331
                fresh         => 1,
332
                itemnumber_id => $builder->build_sample_item->itemnumber
333
            }
334
        }
335
    );
293
    $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
336
    $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
294
    $dbitem->itemnumber->homebranch($dbitem->stage->branchcode_id)->store;
337
    $dbitem->itemnumber->homebranch($dbitem->stage->branchcode_id)->store;
295
    $dbitem->itemnumber->holdingbranch($dbitem->stage->branchcode_id)->store;
338
    $dbitem->itemnumber->holdingbranch($dbitem->stage->branchcode_id)->store;
296
    is($dbitem->investigate->{reason}, 'initiation', "fresh item at stagebranch initiates.");
339
    is($dbitem->investigate->{reason}, 'initiation', "fresh item at stagebranch initiates.");
297
340
298
    # Test item not at stagebranch with branchtransfer history ['repatriation']
341
    # Test item not at stagebranch with branchtransfer history ['repatriation']
299
    $sritem = $builder->build({
342
    $sritem = $builder->build(
300
        source => 'Stockrotationitem',
343
        {
301
        value => { 'fresh'       => 0,}
344
            source => 'Stockrotationitem',
302
    });
345
            value  => {
346
                'fresh'       => 0,
347
                itemnumber_id => $builder->build_sample_item->itemnumber
348
            }
349
        }
350
    );
303
    $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
351
    $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
304
    my $dbtransfer = Koha::Item::Transfer->new({
352
    my $dbtransfer = Koha::Item::Transfer->new({
305
        'itemnumber'  => $dbitem->itemnumber_id,
353
        'itemnumber'  => $dbitem->itemnumber_id,
Lines 312-321 subtest "Tests for investigate (singular)." => sub { Link Here
312
    is($dbitem->investigate->{reason}, 'repatriation', "older item repatriates.");
360
    is($dbitem->investigate->{reason}, 'repatriation', "older item repatriates.");
313
361
314
    # Test item at stagebranch with branchtransfer history ['not-ready']
362
    # Test item at stagebranch with branchtransfer history ['not-ready']
315
    $sritem = $builder->build({
363
    $sritem = $builder->build(
316
        source => 'Stockrotationitem',
364
        {
317
        value => { 'fresh'       => 0,}
365
            source => 'Stockrotationitem',
318
    });
366
            value  => {
367
                'fresh'       => 0,
368
                itemnumber_id => $builder->build_sample_item->itemnumber
369
            }
370
        }
371
    );
319
    $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
372
    $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
320
    $dbtransfer = Koha::Item::Transfer->new({
373
    $dbtransfer = Koha::Item::Transfer->new({
321
        'itemnumber'  => $dbitem->itemnumber_id,
374
        'itemnumber'  => $dbitem->itemnumber_id,
Lines 330-336 subtest "Tests for investigate (singular)." => sub { Link Here
330
    is($dbitem->investigate->{reason}, 'not-ready', "older item at stagebranch not-ready.");
383
    is($dbitem->investigate->{reason}, 'not-ready', "older item at stagebranch not-ready.");
331
384
332
    # Test item due for advancement ['advancement']
385
    # Test item due for advancement ['advancement']
333
    $sritem = $builder->build({ source => 'Stockrotationitem', value => { fresh => 0 } });
386
    $sritem = $builder->build(
387
        {
388
            source => 'Stockrotationitem',
389
            value  => {
390
                fresh         => 0,
391
                itemnumber_id => $builder->build_sample_item->itemnumber
392
            }
393
        }
394
    );
334
    $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
395
    $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
335
    $dbitem->indemand(0)->store;
396
    $dbitem->indemand(0)->store;
336
    $dbitem->stage->duration(50)->store;
397
    $dbitem->stage->duration(50)->store;
Lines 350-356 subtest "Tests for investigate (singular)." => sub { Link Here
350
       "Item ready for advancement.");
411
       "Item ready for advancement.");
351
412
352
    # Test item due for advancement but in-demand ['in-demand']
413
    # Test item due for advancement but in-demand ['in-demand']
353
    $sritem = $builder->build({ source => 'Stockrotationitem', value => { fresh => 0 } });
414
    $sritem = $builder->build(
415
        {
416
            source => 'Stockrotationitem',
417
            value  => {
418
                fresh         => 0,
419
                itemnumber_id => $builder->build_sample_item->itemnumber
420
            }
421
        }
422
    );
354
    $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
423
    $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
355
    $dbitem->indemand(1)->store;
424
    $dbitem->indemand(1)->store;
356
    $dbitem->stage->duration(50)->store;
425
    $dbitem->stage->duration(50)->store;
Lines 370-376 subtest "Tests for investigate (singular)." => sub { Link Here
370
       "Item advances, but in-demand.");
439
       "Item advances, but in-demand.");
371
440
372
    # Test item ready for advancement, but at wrong library ['repatriation']
441
    # Test item ready for advancement, but at wrong library ['repatriation']
373
    $sritem = $builder->build({ source => 'Stockrotationitem', value => { fresh => 0 } });
442
    $sritem = $builder->build(
443
        {
444
            source => 'Stockrotationitem',
445
            value  => {
446
                fresh         => 0,
447
                itemnumber_id => $builder->build_sample_item->itemnumber
448
            }
449
        }
450
    );
374
    $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
451
    $dbitem = Koha::StockRotationItems->find($sritem->{itemnumber_id});
375
    $dbitem->indemand(0)->store;
452
    $dbitem->indemand(0)->store;
376
    $dbitem->stage->duration(50)->store;
453
    $dbitem->stage->duration(50)->store;
(-)a/t/db_dependent/StockRotationStages.t (-27 / +47 lines)
Lines 165-182 subtest 'Relationship to stockrotationitems' => sub { Link Here
165
    $schema->storage->txn_begin;
165
    $schema->storage->txn_begin;
166
    my $stage = $builder->build({ source => 'Stockrotationstage' });
166
    my $stage = $builder->build({ source => 'Stockrotationstage' });
167
167
168
    $builder->build({
168
    $builder->build(
169
        source => 'Stockrotationitem',
169
        {
170
        value  => { stage_id => $stage->{stage_id} },
170
            source => 'Stockrotationitem',
171
    });
171
            value  => {
172
    $builder->build({
172
                stage_id      => $stage->{stage_id},
173
        source => 'Stockrotationitem',
173
                itemnumber_id => $builder->build_sample_item->itemnumber
174
        value  => { stage_id => $stage->{stage_id} },
174
            },
175
    });
175
        }
176
    $builder->build({
176
    );
177
        source => 'Stockrotationitem',
177
    $builder->build(
178
        value  => { stage_id => $stage->{stage_id} },
178
        {
179
    });
179
            source => 'Stockrotationitem',
180
            value  => {
181
                stage_id      => $stage->{stage_id},
182
                itemnumber_id => $builder->build_sample_item->itemnumber
183
            },
184
        }
185
    );
186
    $builder->build(
187
        {
188
            source => 'Stockrotationitem',
189
            value  => {
190
                stage_id      => $stage->{stage_id},
191
                itemnumber_id => $builder->build_sample_item->itemnumber
192
            },
193
        }
194
    );
180
195
181
    my $srstage = Koha::StockRotationStages->find($stage->{stage_id});
196
    my $srstage = Koha::StockRotationStages->find($stage->{stage_id});
182
    my $sritems = $srstage->stockrotationitems;
197
    my $sritems = $srstage->stockrotationitems;
Lines 283-296 subtest 'Tests for investigate (singular)' => sub { Link Here
283
    while ( my ( $code, $count ) = each %{$spec} ) {
298
    while ( my ( $code, $count ) = each %{$spec} ) {
284
        my $cnt = 0;
299
        my $cnt = 0;
285
        while ( $cnt < $count ) {
300
        while ( $cnt < $count ) {
286
            my $item = $builder->build({
301
            my $item = $builder->build(
287
                source => 'Stockrotationitem',
302
                {
288
                value  => {
303
                    source => 'Stockrotationitem',
289
                    stage_id => $stage1->{stage_id},
304
                    value  => {
290
                    indemand => 0,
305
                        stage_id      => $stage1->{stage_id},
291
                    fresh    => 1,
306
                        indemand      => 0,
307
                        fresh         => 1,
308
                        itemnumber_id => $builder->build_sample_item->itemnumber
309
                    }
292
                }
310
                }
293
            });
311
            );
294
            my $dbitem = Koha::StockRotationItems->find($item);
312
            my $dbitem = Koha::StockRotationItems->find($item);
295
            $dbitem->itemnumber->homebranch($code)
313
            $dbitem->itemnumber->homebranch($code)
296
                ->holdingbranch($code)->store;
314
                ->holdingbranch($code)->store;
Lines 322-335 subtest 'Tests for investigate (singular)' => sub { Link Here
322
    while ( my ( $code, $count ) = each %{$spec} ) {
340
    while ( my ( $code, $count ) = each %{$spec} ) {
323
        my $cnt = 0;
341
        my $cnt = 0;
324
        while ( $cnt < $count ) {
342
        while ( $cnt < $count ) {
325
            my $item = $builder->build({
343
            my $item = $builder->build(
326
                source => 'Stockrotationitem',
344
                {
327
                value  => {
345
                    source => 'Stockrotationitem',
328
                    stage_id => $stage2->{stage_id},
346
                    value  => {
329
                    indemand => 0,
347
                        stage_id      => $stage2->{stage_id},
330
                    fresh => 1,
348
                        indemand      => 0,
349
                        fresh         => 1,
350
                        itemnumber_id => $builder->build_sample_item->itemnumber
351
                    }
331
                }
352
                }
332
            });
353
            );
333
            my $dbitem = Koha::StockRotationItems->find($item);
354
            my $dbitem = Koha::StockRotationItems->find($item);
334
            $dbitem->itemnumber->homebranch($code)
355
            $dbitem->itemnumber->homebranch($code)
335
                ->holdingbranch($code)->store;
356
                ->holdingbranch($code)->store;
336
- 

Return to bug 26250