|
Lines 617-623
subtest 'add_enrolment_fee_if_needed' => sub {
Link Here
|
| 617 |
}; |
617 |
}; |
| 618 |
|
618 |
|
| 619 |
subtest 'checkouts + pending_checkouts + overdues + old_checkouts' => sub { |
619 |
subtest 'checkouts + pending_checkouts + overdues + old_checkouts' => sub { |
| 620 |
plan tests => 17; |
620 |
plan tests => 19; |
| 621 |
|
621 |
|
| 622 |
my $library = $builder->build( { source => 'Branch' } ); |
622 |
my $library = $builder->build( { source => 'Branch' } ); |
| 623 |
my $biblionumber_1 = $builder->build_sample_biblio->biblionumber; |
623 |
my $biblionumber_1 = $builder->build_sample_biblio->biblionumber; |
|
Lines 660-678
subtest 'checkouts + pending_checkouts + overdues + old_checkouts' => sub {
Link Here
|
| 660 |
|
660 |
|
| 661 |
t::lib::Mocks::mock_userenv({ branchcode => $library->{branchcode} }); |
661 |
t::lib::Mocks::mock_userenv({ branchcode => $library->{branchcode} }); |
| 662 |
|
662 |
|
| 663 |
AddIssue( $patron, $item_1->barcode, DateTime->now->subtract( days => 1 ) ); |
663 |
my $issue_1 = AddIssue( |
| 664 |
AddIssue( $patron, $item_2->barcode, DateTime->now->subtract( days => 5 ) ); |
664 |
$patron, $item_1->barcode, dt_from_string()->subtract( days => 1 ), undef, |
| 665 |
AddIssue( $patron, $item_3->barcode ); |
665 |
dt_from_string()->subtract( days => 10 ) |
|
|
666 |
); |
| 667 |
sleep(1); # Pause to ensure timestamps differ and that they do not affect ordering |
| 668 |
AddIssue( |
| 669 |
$patron, $item_2->barcode, dt_from_string()->subtract( days => 5 ), undef, |
| 670 |
dt_from_string()->subtract( days => 1 ) |
| 671 |
); |
| 672 |
sleep(1); |
| 673 |
AddIssue( $patron, $item_3->barcode, undef, undef, dt_from_string()->subtract( days => 5 ) ); |
| 674 |
sleep(1); |
| 666 |
|
675 |
|
| 667 |
$checkouts = $patron->checkouts; |
676 |
$checkouts = $patron->checkouts; |
| 668 |
is( $checkouts->count, 3, 'checkouts should return 3 issues for that patron' ); |
677 |
is( $checkouts->count, 3, 'checkouts should return 3 issues for that patron' ); |
| 669 |
is( ref($checkouts), 'Koha::Checkouts', 'checkouts should return a Koha::Checkouts object' ); |
678 |
is( ref($checkouts), 'Koha::Checkouts', 'checkouts should return a Koha::Checkouts object' ); |
| 670 |
$pending_checkouts = $patron->pending_checkouts; |
679 |
$pending_checkouts = $patron->pending_checkouts; |
| 671 |
is( $pending_checkouts->count, 3, 'pending_checkouts should return 3 issues for that patron' ); |
680 |
is( $pending_checkouts->count, 3, 'pending_checkouts should return 3 issues for that patron' ); |
| 672 |
is( ref($pending_checkouts), 'Koha::Checkouts', 'pending_checkouts should return a Koha::Checkouts object' ); |
681 |
is( ref($pending_checkouts), 'Koha::Checkouts', 'pending_checkouts should return a Koha::Checkouts object' ); |
|
|
682 |
|
| 683 |
my @itemnumbers = $pending_checkouts->get_column('itemnumber'); |
| 684 |
is_deeply( |
| 685 |
\@itemnumbers, [ $item_2->itemnumber, $item_3->itemnumber, $item_1->itemnumber ], |
| 686 |
"Checkouts are ordered by the date issued" |
| 687 |
); |
| 688 |
$issue_1->auto_renew_error("Updated")->store; |
| 689 |
$pending_checkouts = $patron->pending_checkouts; |
| 690 |
@itemnumbers = $pending_checkouts->get_column('itemnumber'); |
| 691 |
is_deeply( |
| 692 |
\@itemnumbers, [ $item_2->itemnumber, $item_3->itemnumber, $item_1->itemnumber ], |
| 693 |
"Checkouts are still ordered by the date issued, updates do not reorder" |
| 694 |
); |
| 673 |
|
695 |
|
| 674 |
my $first_checkout = $pending_checkouts->next; |
696 |
my $first_checkout = $pending_checkouts->next; |
| 675 |
is( $first_checkout->unblessed_all_relateds->{biblionumber}, $item_3->biblionumber, 'pending_checkouts should prefetch values from other tables (here biblio)' ); |
697 |
is( $first_checkout->unblessed_all_relateds->{biblionumber}, $item_2->biblionumber, 'pending_checkouts should prefetch values from other tables (here biblio)' ); |
| 676 |
|
698 |
|
| 677 |
my $overdues = $patron->overdues; |
699 |
my $overdues = $patron->overdues; |
| 678 |
is( $overdues->count, 2, 'Patron should have 2 overdues'); |
700 |
is( $overdues->count, 2, 'Patron should have 2 overdues'); |
| 679 |
- |
|
|