|
Lines 19-25
Link Here
|
| 19 |
|
19 |
|
| 20 |
use Modern::Perl; |
20 |
use Modern::Perl; |
| 21 |
|
21 |
|
| 22 |
use Test::More tests => 25; |
22 |
use Test::More tests => 26; |
| 23 |
|
23 |
|
| 24 |
use Test::MockModule; |
24 |
use Test::MockModule; |
| 25 |
use Test::Exception; |
25 |
use Test::Exception; |
|
Lines 2357-2363
subtest 'filter_by_in_bundle' => sub {
Link Here
|
| 2357 |
my $item_1 = $builder->build_sample_item({ biblionumber => $biblio->biblionumber, }); |
2357 |
my $item_1 = $builder->build_sample_item({ biblionumber => $biblio->biblionumber, }); |
| 2358 |
my $item_2 = $builder->build_sample_item({ biblionumber => $biblio->biblionumber, }); |
2358 |
my $item_2 = $builder->build_sample_item({ biblionumber => $biblio->biblionumber, }); |
| 2359 |
my $item_3 = $builder->build_sample_item({ biblionumber => $biblio->biblionumber, }); |
2359 |
my $item_3 = $builder->build_sample_item({ biblionumber => $biblio->biblionumber, }); |
| 2360 |
|
2360 |
|
| 2361 |
is ( $biblio->items->filter_by_in_bundle->count, 0, "0 items in a bundle for this record" ); |
2361 |
is ( $biblio->items->filter_by_in_bundle->count, 0, "0 items in a bundle for this record" ); |
| 2362 |
|
2362 |
|
| 2363 |
my $in_bundle = $item_1->in_bundle; |
2363 |
my $in_bundle = $item_1->in_bundle; |
|
Lines 2410-2412
subtest 'filter_by_has_recalls' => sub {
Link Here
|
| 2410 |
$schema->storage->txn_rollback; |
2410 |
$schema->storage->txn_rollback; |
| 2411 |
|
2411 |
|
| 2412 |
}; |
2412 |
}; |
| 2413 |
- |
2413 |
|
|
|
2414 |
subtest 'filter_by_available' => sub { |
| 2415 |
plan tests => 6; |
| 2416 |
|
| 2417 |
$schema->storage->txn_begin; |
| 2418 |
|
| 2419 |
my $library = $builder->build_object( { class => 'Koha::Libraries' } ); |
| 2420 |
my $biblio = $builder->build_sample_biblio(); |
| 2421 |
my $patron = $builder->build_object( { class => 'Koha::Patrons' } ); |
| 2422 |
t::lib::Mocks::mock_userenv( { branchcode => $patron->branchcode } ); |
| 2423 |
|
| 2424 |
my $item_1 = $builder->build_sample_item( |
| 2425 |
{ |
| 2426 |
biblionumber => $biblio->biblionumber, |
| 2427 |
library => $library->branchcode, |
| 2428 |
itemlost => 0, |
| 2429 |
withdrawn => 0, |
| 2430 |
damaged => 0, |
| 2431 |
notforloan => 0, |
| 2432 |
onloan => undef, |
| 2433 |
} |
| 2434 |
); |
| 2435 |
|
| 2436 |
my $item_2 = $builder->build_sample_item( |
| 2437 |
{ |
| 2438 |
biblionumber => $biblio->biblionumber, |
| 2439 |
library => $library->branchcode, |
| 2440 |
itemlost => 0, |
| 2441 |
withdrawn => 0, |
| 2442 |
damaged => 0, |
| 2443 |
notforloan => 0, |
| 2444 |
onloan => undef, |
| 2445 |
} |
| 2446 |
); |
| 2447 |
|
| 2448 |
my $item_3 = $builder->build_sample_item( |
| 2449 |
{ |
| 2450 |
biblionumber => $biblio->biblionumber, |
| 2451 |
library => $library->branchcode, |
| 2452 |
itemlost => 0, |
| 2453 |
withdrawn => 0, |
| 2454 |
damaged => 0, |
| 2455 |
notforloan => 0, |
| 2456 |
onloan => undef, |
| 2457 |
} |
| 2458 |
); |
| 2459 |
|
| 2460 |
my $item_4 = $builder->build_sample_item( |
| 2461 |
{ |
| 2462 |
biblionumber => $biblio->biblionumber, |
| 2463 |
library => $library->branchcode, |
| 2464 |
itemlost => 0, |
| 2465 |
withdrawn => 0, |
| 2466 |
damaged => 0, |
| 2467 |
notforloan => 0, |
| 2468 |
onloan => undef, |
| 2469 |
} |
| 2470 |
); |
| 2471 |
|
| 2472 |
my $item_5 = $builder->build_sample_item( |
| 2473 |
{ |
| 2474 |
biblionumber => $biblio->biblionumber, |
| 2475 |
library => $library->branchcode, |
| 2476 |
itemlost => 0, |
| 2477 |
withdrawn => 0, |
| 2478 |
damaged => 0, |
| 2479 |
notforloan => 0, |
| 2480 |
onloan => undef, |
| 2481 |
} |
| 2482 |
); |
| 2483 |
|
| 2484 |
# Create items with varying states |
| 2485 |
# Test: Initial available items |
| 2486 |
is( |
| 2487 |
$biblio->items->filter_by_available->count, |
| 2488 |
5, |
| 2489 |
"Filtered to 4 available items" |
| 2490 |
); |
| 2491 |
|
| 2492 |
# Mark item_1 as lost |
| 2493 |
$item_1->itemlost(3)->store; |
| 2494 |
C4::Circulation::LostItem( $item_1->itemnumber, 1 ); |
| 2495 |
|
| 2496 |
is( |
| 2497 |
$biblio->items->filter_by_available->count, |
| 2498 |
4, |
| 2499 |
"Filtered to 4 available items, 1 is lost" |
| 2500 |
); |
| 2501 |
|
| 2502 |
#Mark item_2 as damaged |
| 2503 |
$item_2->damaged(1)->store; |
| 2504 |
|
| 2505 |
is( |
| 2506 |
$biblio->items->filter_by_available->count, |
| 2507 |
3, |
| 2508 |
"Filtered to 3 available items, 1 is lost, 1 is damaged" |
| 2509 |
); |
| 2510 |
|
| 2511 |
#Mark item_3 as withdrawn |
| 2512 |
$item_3->withdrawn(1)->store; |
| 2513 |
|
| 2514 |
is( |
| 2515 |
$biblio->items->filter_by_available->count, |
| 2516 |
2, |
| 2517 |
"Filtered to 2 available items, 1 is lost, 1 is damaged, 1 is withdrawn" |
| 2518 |
); |
| 2519 |
|
| 2520 |
#Checkout item_4 |
| 2521 |
C4::Circulation::AddIssue( $patron, $item_4->barcode ); |
| 2522 |
is( |
| 2523 |
$biblio->items->filter_by_available->count, |
| 2524 |
1, |
| 2525 |
"Filtered to 1 available items, 1 is lost, 1 is damaged, 1 is withdrawn, 1 is checked out" |
| 2526 |
); |
| 2527 |
|
| 2528 |
#Mark item_5 as notforloan |
| 2529 |
$item_5->notforloan(1)->store; |
| 2530 |
is( |
| 2531 |
$biblio->items->filter_by_available->count, |
| 2532 |
0, |
| 2533 |
"Filtered to 0 available items, 1 is lost, 1 is damaged, 1 is withdrawn, 1 is checked out, 1 is notforloan" |
| 2534 |
); |
| 2535 |
|
| 2536 |
$schema->storage->txn_rollback; |
| 2537 |
}; |