Bug 17583: [QA Follow-up] Final polishing

Number of tests in Patrons.t corrected.
Method is_going_to_expired (no english!) renamed to is_going_to_expire.
Adding a negative duration replaced by a subtract. Reads easier.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
This commit is contained in:
Marcel de Rooy 2016-12-02 11:25:29 +01:00 committed by Kyle M Hall
parent 6bea1c641f
commit 9d0c436cb4
3 changed files with 16 additions and 16 deletions

View File

@ -295,15 +295,15 @@ sub is_expired {
return 0;
}
=head2 is_going_to_expired
=head2 is_going_to_expire
my $is_going_to_expired = $patron->is_going_to_expired;
my $is_going_to_expire = $patron->is_going_to_expire;
Returns 1 if the patron is going to expired, depending on the NotifyBorrowerDeparture pref or 0
=cut
sub is_going_to_expired {
sub is_going_to_expire {
my ($self) = @_;
my $delay = C4::Context->preference('NotifyBorrowerDeparture') || 0;
@ -311,7 +311,7 @@ sub is_going_to_expired {
return 0 unless $delay;
return 0 unless $self->dateexpiry;
return 0 if $self->dateexpiry eq '0000-00-00';
return 1 if dt_from_string( $self->dateexpiry )->add( days => -$delay ) < dt_from_string->truncate( to => 'day' );
return 1 if dt_from_string( $self->dateexpiry )->subtract( days => $delay ) < dt_from_string->truncate( to => 'day' );
return 0;
}

View File

@ -278,7 +278,7 @@ if ($borrowernumber) {
);
}
# check for NotifyBorrowerDeparture
elsif ( $patron->is_going_to_expired ) {
elsif ( $patron->is_going_to_expire ) {
# borrower card soon to expire warn librarian
$template->param( "warndeparture" => $borrower->{dateexpiry} ,
);

View File

@ -19,7 +19,7 @@
use Modern::Perl;
use Test::More tests => 13;
use Test::More tests => 14;
use Test::Warn;
use C4::Members;
@ -190,42 +190,42 @@ subtest 'is_expired' => sub {
$patron->delete;
};
subtest 'is_going_to_expired' => sub {
subtest 'is_going_to_expire' => sub {
plan tests => 9;
my $patron = $builder->build({ source => 'Borrower' });
$patron = Koha::Patrons->find( $patron->{borrowernumber} );
$patron->dateexpiry( undef )->store->discard_changes;
is( $patron->is_going_to_expired, 0, 'Patron should not be considered going to expire if dateexpiry is not set');
is( $patron->is_going_to_expire, 0, 'Patron should not be considered going to expire if dateexpiry is not set');
$patron->dateexpiry( '0000-00-00' )->store->discard_changes;
is( $patron->is_going_to_expired, 0, 'Patron should not be considered going to expire if dateexpiry is not 0000-00-00');
is( $patron->is_going_to_expire, 0, 'Patron should not be considered going to expire if dateexpiry is not 0000-00-00');
t::lib::Mocks::mock_preference('NotifyBorrowerDeparture', 0);
$patron->dateexpiry( dt_from_string )->store->discard_changes;
is( $patron->is_going_to_expired, 0, 'Patron should not be considered going to expire if dateexpiry is today');
is( $patron->is_going_to_expire, 0, 'Patron should not be considered going to expire if dateexpiry is today');
$patron->dateexpiry( dt_from_string )->store->discard_changes;
is( $patron->is_going_to_expired, 0, 'Patron should not be considered going to expire if dateexpiry is today and pref is 0');
is( $patron->is_going_to_expire, 0, 'Patron should not be considered going to expire if dateexpiry is today and pref is 0');
t::lib::Mocks::mock_preference('NotifyBorrowerDeparture', 10);
$patron->dateexpiry( dt_from_string->add( days => 11 ) )->store->discard_changes;
is( $patron->is_going_to_expired, 0, 'Patron should not be considered going to expire if dateexpiry is 11 days ahead and pref is 10');
is( $patron->is_going_to_expire, 0, 'Patron should not be considered going to expire if dateexpiry is 11 days ahead and pref is 10');
t::lib::Mocks::mock_preference('NotifyBorrowerDeparture', 0);
$patron->dateexpiry( dt_from_string->add( days => 10 ) )->store->discard_changes;
is( $patron->is_going_to_expired, 0, 'Patron should not be considered going to expire if dateexpiry is 10 days ahead and pref is 0');
is( $patron->is_going_to_expire, 0, 'Patron should not be considered going to expire if dateexpiry is 10 days ahead and pref is 0');
t::lib::Mocks::mock_preference('NotifyBorrowerDeparture', 10);
$patron->dateexpiry( dt_from_string->add( days => 10 ) )->store->discard_changes;
is( $patron->is_going_to_expired, 0, 'Patron should not be considered going to expire if dateexpiry is 10 days ahead and pref is 10');
is( $patron->is_going_to_expire, 0, 'Patron should not be considered going to expire if dateexpiry is 10 days ahead and pref is 10');
$patron->delete;
t::lib::Mocks::mock_preference('NotifyBorrowerDeparture', 10);
$patron->dateexpiry( dt_from_string->add( days => 20 ) )->store->discard_changes;
is( $patron->is_going_to_expired, 0, 'Patron should not be considered going to expire if dateexpiry is 20 days ahead and pref is 10');
is( $patron->is_going_to_expire, 0, 'Patron should not be considered going to expire if dateexpiry is 20 days ahead and pref is 10');
t::lib::Mocks::mock_preference('NotifyBorrowerDeparture', 20);
$patron->dateexpiry( dt_from_string->add( days => 10 ) )->store->discard_changes;
is( $patron->is_going_to_expired, 1, 'Patron should be considered going to expire if dateexpiry is 10 days ahead and pref is 20');
is( $patron->is_going_to_expire, 1, 'Patron should be considered going to expire if dateexpiry is 10 days ahead and pref is 20');
$patron->delete;
};