From 564da22e49592467cfeaf1fe5180f2aaf8f6092c 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 cover the changes introduced by bug 14101. 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 f4910ef..4ebc601 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 => 69; +use Test::More tests => 73; BEGIN { use_ok('C4::Circulation'); @@ -165,7 +165,7 @@ $dbh->do( '*', '*', '*', 25, 20, 14, 'days', 1, 7, - '', 0, + undef, 0, .10, 1 ); @@ -391,28 +391,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 @@ -606,7 +626,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