|
Lines 18-24
Link Here
|
| 18 |
use Modern::Perl; |
18 |
use Modern::Perl; |
| 19 |
use utf8; |
19 |
use utf8; |
| 20 |
|
20 |
|
| 21 |
use Test::More tests => 56; |
21 |
use Test::More tests => 57; |
| 22 |
use Test::Exception; |
22 |
use Test::Exception; |
| 23 |
use Test::MockModule; |
23 |
use Test::MockModule; |
| 24 |
use Test::Deep qw( cmp_deeply ); |
24 |
use Test::Deep qw( cmp_deeply ); |
|
Lines 418-424
subtest "GetIssuingCharges tests" => sub {
Link Here
|
| 418 |
|
418 |
|
| 419 |
my ( $reused_itemnumber_1, $reused_itemnumber_2 ); |
419 |
my ( $reused_itemnumber_1, $reused_itemnumber_2 ); |
| 420 |
subtest "CanBookBeRenewed tests" => sub { |
420 |
subtest "CanBookBeRenewed tests" => sub { |
| 421 |
plan tests => 95; |
421 |
plan tests => 93; |
| 422 |
|
422 |
|
| 423 |
C4::Context->set_preference('ItemsDeniedRenewal',''); |
423 |
C4::Context->set_preference('ItemsDeniedRenewal',''); |
| 424 |
# Generate test biblio |
424 |
# Generate test biblio |
|
Lines 856-879
subtest "CanBookBeRenewed tests" => sub {
Link Here
|
| 856 |
is( $renewokay, 0, 'Bug 7413: Cannot renew, renewal is premature'); |
856 |
is( $renewokay, 0, 'Bug 7413: Cannot renew, renewal is premature'); |
| 857 |
is( $error, 'too_soon', 'Bug 7413: Cannot renew, renewal is premature (returned code is too_soon)'); |
857 |
is( $error, 'too_soon', 'Bug 7413: Cannot renew, renewal is premature (returned code is too_soon)'); |
| 858 |
|
858 |
|
| 859 |
# Bug 14395 |
|
|
| 860 |
# Test 'exact time' setting for syspref NoRenewalBeforePrecision |
| 861 |
t::lib::Mocks::mock_preference( 'NoRenewalBeforePrecision', 'exact_time' ); |
| 862 |
is( |
| 863 |
GetSoonestRenewDate( $renewing_borrowernumber, $item_1->itemnumber ), |
| 864 |
$datedue->clone->add( days => -7 ), |
| 865 |
'Bug 14395: Renewals permitted 7 days before due date, as expected' |
| 866 |
); |
| 867 |
|
| 868 |
# Bug 14395 |
| 869 |
# Test 'date' setting for syspref NoRenewalBeforePrecision |
| 870 |
t::lib::Mocks::mock_preference( 'NoRenewalBeforePrecision', 'date' ); |
| 871 |
is( |
| 872 |
GetSoonestRenewDate( $renewing_borrowernumber, $item_1->itemnumber ), |
| 873 |
$datedue->clone->add( days => -7 )->truncate( to => 'day' ), |
| 874 |
'Bug 14395: Renewals permitted 7 days before due date, as expected' |
| 875 |
); |
| 876 |
|
| 877 |
# Bug 14101 |
859 |
# Bug 14101 |
| 878 |
# Test premature automatic renewal |
860 |
# Test premature automatic renewal |
| 879 |
( $renewokay, $error ) = |
861 |
( $renewokay, $error ) = |
|
Lines 4974-4979
subtest "SendCirculationAlert" => sub {
Link Here
|
| 4974 |
|
4956 |
|
| 4975 |
}; |
4957 |
}; |
| 4976 |
|
4958 |
|
|
|
4959 |
subtest "GetSoonestRenewDate tests" => sub { |
| 4960 |
plan tests => 4; |
| 4961 |
Koha::CirculationRules->set_rule( |
| 4962 |
{ |
| 4963 |
categorycode => undef, |
| 4964 |
branchcode => undef, |
| 4965 |
itemtype => undef, |
| 4966 |
rule_name => 'norenewalbefore', |
| 4967 |
rule_value => '7', |
| 4968 |
} |
| 4969 |
); |
| 4970 |
my $patron = $builder->build_object({ class => 'Koha::Patrons' }); |
| 4971 |
my $item = $builder->build_sample_item(); |
| 4972 |
my $issue = AddIssue( $patron->unblessed, $item->barcode); |
| 4973 |
my $datedue = dt_from_string( $issue->date_due() ); |
| 4974 |
|
| 4975 |
# Bug 14395 |
| 4976 |
# Test 'exact time' setting for syspref NoRenewalBeforePrecision |
| 4977 |
t::lib::Mocks::mock_preference( 'NoRenewalBeforePrecision', 'exact_time' ); |
| 4978 |
is( |
| 4979 |
GetSoonestRenewDate( $patron->id, $item->itemnumber ), |
| 4980 |
$datedue->clone->add( days => -7 ), |
| 4981 |
'Bug 14395: Renewals permitted 7 days before due date, as expected' |
| 4982 |
); |
| 4983 |
|
| 4984 |
# Bug 14395 |
| 4985 |
# Test 'date' setting for syspref NoRenewalBeforePrecision |
| 4986 |
t::lib::Mocks::mock_preference( 'NoRenewalBeforePrecision', 'date' ); |
| 4987 |
is( |
| 4988 |
GetSoonestRenewDate( $patron->id, $item->itemnumber ), |
| 4989 |
$datedue->clone->add( days => -7 )->truncate( to => 'day' ), |
| 4990 |
'Bug 14395: Renewals permitted 7 days before due date, as expected' |
| 4991 |
); |
| 4992 |
|
| 4993 |
|
| 4994 |
Koha::CirculationRules->set_rule( |
| 4995 |
{ |
| 4996 |
categorycode => undef, |
| 4997 |
branchcode => undef, |
| 4998 |
itemtype => undef, |
| 4999 |
rule_name => 'norenewalbefore', |
| 5000 |
rule_value => undef, |
| 5001 |
} |
| 5002 |
); |
| 5003 |
|
| 5004 |
is( |
| 5005 |
GetSoonestRenewDate( $patron->id, $item->itemnumber ), |
| 5006 |
dt_from_string, |
| 5007 |
'Checkouts without auto-renewal can be renewed immediately if no norenewalbefore' |
| 5008 |
); |
| 5009 |
|
| 5010 |
$issue->auto_renew(1)->store; |
| 5011 |
is( |
| 5012 |
GetSoonestRenewDate( $patron->id, $item->itemnumber ), |
| 5013 |
$datedue, |
| 5014 |
'Checkouts with auto-renewal can be renewed earliest on due date if no renewalbefore' |
| 5015 |
); |
| 5016 |
}; |
| 5017 |
|
| 4977 |
$schema->storage->txn_rollback; |
5018 |
$schema->storage->txn_rollback; |
| 4978 |
C4::Context->clear_syspref_cache(); |
5019 |
C4::Context->clear_syspref_cache(); |
| 4979 |
$branches = Koha::Libraries->search(); |
5020 |
$branches = Koha::Libraries->search(); |
| 4980 |
- |
|
|