From 913d41d3854717ddf43f8a5d58a28352576d6cff Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Wed, 25 Dec 2013 17:38:39 +0000 Subject: [PATCH] Bug 11445: regression test for duplicate hold notifications This patch implements a regression test for verifying that duplicate hold notifications aren't sent if ModReserveAffect() is called repeatedly (as might happen if a circ operator accidentally checks in an item and confirms its hold more than once). Note that the test depends on the fact that _koha_notify_reserve() defaults to sending a HOLD_PRINT letter if the borrower has not specified an email or SMS hold notification. To test: [1] Run prove -v t/db_dependent/Reserves.t [2] The 'patron not notified a second time (bug 11445)' test should fail. [3] Apply the main patch and run prove -v t/db_dependent/Reserves.t again. This time all tests should pass. Signed-off-by: Galen Charlton Signed-off-by: Chris Cormack --- t/db_dependent/Reserves.t | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/t/db_dependent/Reserves.t b/t/db_dependent/Reserves.t index 5a1ebfc..fe0baaa 100755 --- a/t/db_dependent/Reserves.t +++ b/t/db_dependent/Reserves.t @@ -2,7 +2,7 @@ use Modern::Perl; -use Test::More tests => 18; +use Test::More tests => 20; use MARC::Record; use DateTime::Duration; @@ -270,7 +270,15 @@ is(exists $messages->{ResFound}?1:0, 1, 'AddReturn considers future reserve with # End of tests for bug 9761 (ConfirmFutureHolds) # test marking a hold as captured +my $hold_notice_count = count_hold_print_messages(); ModReserveAffect($itemnumber, $requesters{'CPL'}, 0); +my $new_count = count_hold_print_messages(); +is($new_count, $hold_notice_count + 1, 'patron notified when item set to waiting'); + +# test that duplicate notices aren't generated +ModReserveAffect($itemnumber, $requesters{'CPL'}, 0); +$new_count = count_hold_print_messages(); +is($new_count, $hold_notice_count + 1, 'patron not notified a second time (bug 11445)'); # avoiding the not_same_branch error t::lib::Mocks::mock_preference('IndependentBranches', 0); @@ -284,3 +292,10 @@ my $letter = ReserveSlip('CPL', $requesters{'CPL'}, $bibnum); ok(defined($letter), 'can successfully generate hold slip (bug 10949)'); $dbh->rollback; + +sub count_hold_print_messages { + my $message_count = $dbh->selectall_arrayref(q{ + SELECT COUNT(*) FROM message_queue WHERE letter_code = 'HOLD_PRINT' + }); + return $message_count->[0]->[0]; +} -- 1.8.5.2