From 5ae473d299767dfdedc44f0f7cde99749681f92c Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 9 Nov 2016 13:23:54 +0000 Subject: [PATCH] Bug 17579: Make sure we are testing the real life Without this patch, the tests are not testing the same things as what happens on the interface. We need to refresh the object to make sure the date set into dateexpiry is the one in DB. Without this patch, ->is_expired test a datetime object, with this patch it compares with a date oject Without the changes made in Koha::Patron->is_expired, a patron which has a dateexpiry set to today was marked as expired on the interface. This is a change in the behavior, what this refactoring does not want to do. --- Koha/Patron.pm | 2 +- t/db_dependent/Koha/Patrons.t | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Koha/Patron.pm b/Koha/Patron.pm index 04a472e..e1af2eb 100644 --- a/Koha/Patron.pm +++ b/Koha/Patron.pm @@ -278,7 +278,7 @@ sub is_expired { my ($self) = @_; return 0 unless $self->dateexpiry; return 0 if $self->dateexpiry eq '0000-00-00'; - return 1 if dt_from_string( $self->dateexpiry ) < dt_from_string; + return 1 if dt_from_string( $self->dateexpiry ) < 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 60b113a..a527591 100644 --- a/t/db_dependent/Koha/Patrons.t +++ b/t/db_dependent/Koha/Patrons.t @@ -169,15 +169,15 @@ subtest 'is_expired' => sub { plan tests => 5; 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_expired, 0, 'Patron should not be considered expired if dateexpiry is not set'); - $patron->dateexpiry( '0000-00-00' )->store; + $patron->dateexpiry( '0000-00-00' )->store->discard_changes; is( $patron->is_expired, 0, 'Patron should not be considered expired if dateexpiry is not 0000-00-00'); - $patron->dateexpiry( dt_from_string )->store; + $patron->dateexpiry( dt_from_string )->store->discard_changes; is( $patron->is_expired, 0, 'Patron should not be considered expired if dateexpiry is today'); - $patron->dateexpiry( dt_from_string->add( days => 1 ) )->store; + $patron->dateexpiry( dt_from_string->add( days => 1 ) )->store->discard_changes; is( $patron->is_expired, 0, 'Patron should not be considered expired if dateexpiry is tomorrow'); - $patron->dateexpiry( dt_from_string->add( days => -1 ) )->store; + $patron->dateexpiry( dt_from_string->add( days => -1 ) )->store->discard_changes; is( $patron->is_expired, 1, 'Patron should be considered expired if dateexpiry is yesterday'); $patron->delete; -- 2.1.4