From f36840ab3194e7c9f19853aba159c40f11a4518d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Holger=20Mei=C3=9Fner?= Date: Tue, 22 Sep 2015 14:03:33 +0200 Subject: [PATCH] Bug 14101: Unit tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch adds new test cases to check if CanBookBeRenewed provides correct return values and error codes for premature renewals. Both manual and automatic renewals and different settings for 'No renewal before' are tested. To test: 1) prove t/db_dependent/Circulation.t Sponsored-by: Hochschule für Gesundheit (hsg), Germany --- t/db_dependent/Circulation.t | 42 +++++++++++++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/t/db_dependent/Circulation.t b/t/db_dependent/Circulation.t index 810b8c2..65e951a 100755 --- a/t/db_dependent/Circulation.t +++ b/t/db_dependent/Circulation.t @@ -27,7 +27,7 @@ use C4::Overdues qw(UpdateFine); use Koha::DateUtils; use Koha::Database; -use Test::More tests => 78 ; +use Test::More tests => 82; BEGIN { use_ok('C4::Circulation'); @@ -165,7 +165,7 @@ $dbh->do( '*', '*', '*', 25, 20, 14, 'days', 1, 7, - '', 0, + undef, 0, .10, 1 ); @@ -460,28 +460,48 @@ C4::Context->dbh->do("DELETE FROM accountlines"); AddIssue( $renewing_borrower, $barcode4, undef, undef, undef, undef, { auto_renew => 1 } ); ( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrowernumber, $itemnumber4 ); - is( $renewokay, 0, 'Cannot renew, renewal is automatic' ); - is( $error, 'auto_renew', - 'Cannot renew, renewal is automatic (returned code is auto_renew)' ); + is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic and premature' ); + is( $error, 'auto_too_soon', + 'Bug 14101: Cannot renew, renewal is automatic and premature, "No renewal before" = undef (returned code is auto_too_soon)' ); # 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( $renewokay, 0, 'Bug 7413: Cannot renew, renewal is premature'); + is( $error, 'too_soon', 'Bug 7413: 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', + 'Bug 7413: Renewals permitted 7 days before due date, as expected', ); # Test automatic renewal again ( $renewokay, $error ) = CanBookBeRenewed( $renewing_borrowernumber, $itemnumber4 ); - is( $renewokay, 0, 'Cannot renew, renewal is automatic and premature' ); + is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic and premature' ); + is( $error, 'auto_too_soon', +'Bug 14101: Cannot renew, renewal is automatic and premature (returned code is auto_too_soon)' + ); + + # Change policy so that loans can only be renewed exactly on due date (0 days prior to due date) + # and test automatic renewal again + $dbh->do('UPDATE issuingrules SET norenewalbefore = 0'); + ( $renewokay, $error ) = + CanBookBeRenewed( $renewing_borrowernumber, $itemnumber4 ); + is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic and premature' ); is( $error, 'auto_too_soon', -'Cannot renew, renewal is automatic and premature (returned code is auto_too_soon)' +'Bug 14101: Cannot renew, renewal is automatic and premature, "No renewal before" = 0 (returned code is auto_too_soon)' + ); + + # Change policy so that loans can be renewed 99 days prior to the due date + # and test automatic renewal again + $dbh->do('UPDATE issuingrules SET norenewalbefore = 99'); + ( $renewokay, $error ) = + CanBookBeRenewed( $renewing_borrowernumber, $itemnumber4 ); + is( $renewokay, 0, 'Bug 14101: Cannot renew, renewal is automatic' ); + is( $error, 'auto_renew', +'Bug 14101: Cannot renew, renewal is automatic (returned code is auto_renew)' ); # Too many renewals @@ -683,7 +703,7 @@ C4::Context->dbh->do("DELETE FROM accountlines"); '*', '*', '*', 25, 20, 14, 'days', 1, 7, - '', 0, + undef, 0, .10, 1 ); my $biblio = MARC::Record->new(); -- 1.7.10.4