From 464e0dd46bcf8cb849d7b1078f2a07ccfa10ec94 Mon Sep 17 00:00:00 2001 From: Josef Moravec Date: Thu, 5 Oct 2017 20:36:31 +0000 Subject: [PATCH] [17.05] Bug 19260: Add test for CancelExpiredReserves Passes QA test tool Signed-off-by: Alex Buckley Signed-off-by: Marcel de Rooy --- t/db_dependent/Reserves.t | 63 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/t/db_dependent/Reserves.t b/t/db_dependent/Reserves.t index e462276..a4637f9 100755 --- a/t/db_dependent/Reserves.t +++ b/t/db_dependent/Reserves.t @@ -17,7 +17,7 @@ use Modern::Perl; -use Test::More tests => 72; +use Test::More tests => 73; use Test::MockModule; use Test::Warn; @@ -786,6 +786,67 @@ subtest '_koha_notify_reserve() tests' => sub { }; +subtest 'CancelExpiredReserves tests' => sub { + plan tests => 2; + + $dbh->do('DELETE FROM reserves'); + + my $category = $builder->build({ source => 'Category' }); + my $branchcode = $builder->build({ source => 'Branch' })->{ branchcode }; + + my $borrowernumber = AddMember( + firstname => 'my firstname', + surname => 'my surname', + categorycode => $category->{categorycode}, + branchcode => $branchcode, + ); + + my $resdate = dt_from_string->add( days => -20 ); + my $expdate = dt_from_string->add( days => -2 ); + my $notexpdate = dt_from_string->add( days => 2 ); + + my $hold1 = Koha::Hold->new({ + branchcode => $branchcode, + borrowernumber => $borrowernumber, + biblionumber => $bibnum, + priority => 1, + reservedate => $resdate, + expirationdate => $notexpdate, + found => undef + })->store; + + my $hold2 = Koha::Hold->new({ + branchcode => $branchcode, + borrowernumber => $borrowernumber, + biblionumber => $bibnum, + priority => 2, + reservedate => $resdate, + expirationdate => $expdate, + found => undef + })->store; + + my $hold3 = Koha::Hold->new({ + branchcode => $branchcode, + borrowernumber => $borrowernumber, + biblionumber => $bibnum, + itemnumber => $itemnumber, + priority => 0, + reservedate => $resdate, + expirationdate => $expdate, + found => 'W' + })->store; + + t::lib::Mocks::mock_preference( 'ExpireReservesMaxPickUpDelay', 0 ); + CancelExpiredReserves(); + my $count1 = Koha::Holds->search->count; + is( $count1, 2, 'Only the non-waiting expired holds should be cancelled'); + + t::lib::Mocks::mock_preference( 'ExpireReservesMaxPickUpDelay', 1 ); + CancelExpiredReserves(); + my $count2 = Koha::Holds->search->count; + is( $count2, 1, 'Also the waiting expired hold should be cancelled now'); +}; + sub count_hold_print_messages { my $message_count = $dbh->selectall_arrayref(q{ SELECT COUNT(*) -- 2.1.4