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' |
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 |
- |
|
|