From 9d9ae48a0c75d6c5dbe65c21ecf250a86cd46ffc Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Tue, 8 Apr 2014 23:05:13 +0000 Subject: [PATCH] Bug 7413: (follow-up) add direct unit tests This patch adds a direct unit test of GetSoonestRenewDate() and verifies that CanBookBeRenewed() returns a 'too_soon' error as expected. To test: [1] Verify that prove -v t/db_dependent/Circulation.t passes. Signed-off-by: Galen Charlton --- t/db_dependent/Circulation.t | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/t/db_dependent/Circulation.t b/t/db_dependent/Circulation.t index 73c0bf36b5..6b2520809b 100755 --- a/t/db_dependent/Circulation.t +++ b/t/db_dependent/Circulation.t @@ -9,7 +9,7 @@ use C4::Items; use C4::Members; use C4::Reserves; -use Test::More tests => 45; +use Test::More tests => 48; BEGIN { use_ok('C4::Circulation'); @@ -305,10 +305,22 @@ C4::Context->dbh->do("DELETE FROM accountlines"); $reserveid = C4::Reserves::GetReserveId({ biblionumber => $biblionumber, itemnumber => $itemnumber, borrowernumber => $reserving_borrowernumber}); CancelReserve({ reserve_id => $reserveid }); + # set policy to require that loans cannot be + # renewed until seven days prior to the due date + $dbh->do('UPDATE issuingrules SET norenewalbefore = 7'); + ( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $itemnumber); + is( $renewokay, 0, 'Cannot renew, renewal is premature'); + is( $error, 'too_soon', 'Cannot renew, renewal is premature (returned code is too_soon)'); + is( + GetSoonestRenewDate($renewing_borrowernumber, $itemnumber), + $datedue->clone->add(days => -7), + 'renewals permitted 7 days before due date, as expected', + ); + diag("Too many renewals"); # set policy to forbid renewals - $dbh->do('UPDATE issuingrules SET renewalsallowed = 0'); + $dbh->do('UPDATE issuingrules SET norenewalbefore = NULL, renewalsallowed = 0'); ( $renewokay, $error ) = CanBookBeRenewed($renewing_borrowernumber, $itemnumber); is( $renewokay, 0, 'Cannot renew, 0 renewals allowed'); -- 2.39.5