From ac281a12910df8d4cc9116d9c4748d028402f67a Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 9 Nov 2016 13:24:09 +0000 Subject: [PATCH] Bug 17583: Make sure we are comparing 2 dates Signed-off-by: Josef Moravec Signed-off-by: Marcel de Rooy Signed-off-by: Kyle M Hall --- Koha/Patron.pm | 2 +- t/db_dependent/Koha/Patrons.t | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Koha/Patron.pm b/Koha/Patron.pm index e3814c2414..46bfe8e31a 100644 --- a/Koha/Patron.pm +++ b/Koha/Patron.pm @@ -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; + return 1 if dt_from_string( $self->dateexpiry )->add( days => -$delay ) < dt_from_string->truncate( to => 'day' ); return 0; } diff --git a/t/db_dependent/Koha/Patrons.t b/t/db_dependent/Koha/Patrons.t index a4fd9b0855..9047de8d9a 100644 --- a/t/db_dependent/Koha/Patrons.t +++ b/t/db_dependent/Koha/Patrons.t @@ -194,36 +194,36 @@ subtest 'is_going_to_expired' => sub { plan tests => 9; my $patron = $builder->build({ source => 'Borrower' }); $patron = Koha::Patrons->find( $patron->{borrowernumber} ); - $patron->dateexpiry( undef )->store; + $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'); - $patron->dateexpiry( '0000-00-00' )->store; + $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'); - $patron->dateexpiry( dt_from_string )->store; + $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'); t::lib::Mocks::mock_preference('NotifyBorrowerDeparture', 0); - $patron->dateexpiry( dt_from_string )->store; + $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'); t::lib::Mocks::mock_preference('NotifyBorrowerDeparture', 10); - $patron->dateexpiry( dt_from_string->add( days => 11 ) )->store; + $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'); t::lib::Mocks::mock_preference('NotifyBorrowerDeparture', 0); - $patron->dateexpiry( dt_from_string->add( days => 10 ) )->store; + $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'); t::lib::Mocks::mock_preference('NotifyBorrowerDeparture', 10); - $patron->dateexpiry( dt_from_string->add( days => 10 ) )->store; + $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'); $patron->delete; t::lib::Mocks::mock_preference('NotifyBorrowerDeparture', 10); - $patron->dateexpiry( dt_from_string->add( days => 20 ) )->store; + $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'); t::lib::Mocks::mock_preference('NotifyBorrowerDeparture', 20); - $patron->dateexpiry( dt_from_string->add( days => 10 ) )->store; + $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'); $patron->delete; -- 2.39.5