From 1df3ca2e02f153a6a931001c5b0113ade7f42c45 Mon Sep 17 00:00:00 2001 From: Mark Tompsett Date: Sun, 7 Jun 2015 23:40:50 -0400 Subject: [PATCH] Bug 14362: Regression tests This should trigger the error. If you are in Eastern (UTC -5), it should trigger 4 fails, unless you time it perfectly for on the hour, in which case you may get 5 failures. TEST PLAN --------- 1) sudo apt-get install libtime-fake-perl 2) apply test patch 3) prove t/Circulation/AgeRestrictionMarkers.t -- should fail some times. 4) apply fix patch 5) prove t/Circulation/AgeRestrictionMarkers.t -- should work all the time. 6) koha qa test tools. --- t/Circulation/AgeRestrictionMarkers.t | 39 +++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/t/Circulation/AgeRestrictionMarkers.t b/t/Circulation/AgeRestrictionMarkers.t index 750bf9b..c46f99e 100644 --- a/t/Circulation/AgeRestrictionMarkers.t +++ b/t/Circulation/AgeRestrictionMarkers.t @@ -1,8 +1,10 @@ #!/usr/bin/perl use Modern::Perl; +use Time::Fake; + use DateTime; -use Test::More tests => 10; +use Test::More tests => 125; use t::lib::Mocks; @@ -17,18 +19,23 @@ is ( C4::Circulation::GetAgeRestriction('Age 16'), '16', 'Age 16 returns 16' ); is ( C4::Circulation::GetAgeRestriction('K16'), '16', 'K16 returns 16' ); -##Testing age restriction for a borrower. -my $now = DateTime->now(); -my $borrower = {}; -C4::Members::SetAge( $borrower, '0015-00-00' ); - -my ($restriction_age, $daysToAgeRestriction) = C4::Circulation::GetAgeRestriction('FSK 16', $borrower); -is ( ($daysToAgeRestriction > 0), 1, 'FSK 16 blocked for a 15 year old' ); -($restriction_age, $daysToAgeRestriction) = C4::Circulation::GetAgeRestriction('PEGI 15', $borrower); -is ( ($daysToAgeRestriction <= 0), 1, 'PEGI 15 allowed for a 15 year old' ); -($restriction_age, $daysToAgeRestriction) = C4::Circulation::GetAgeRestriction('PEGI14', $borrower); -is ( ($daysToAgeRestriction <= 0), 1, 'PEGI14 allowed for a 15 year old' ); -($restriction_age, $daysToAgeRestriction) = C4::Circulation::GetAgeRestriction('Age 10', $borrower); -is ( ($daysToAgeRestriction <= 0), 1, 'Age 10 allowed for a 15 year old' ); -($restriction_age, $daysToAgeRestriction) = C4::Circulation::GetAgeRestriction('K18', $borrower); -is ( ($daysToAgeRestriction > 0), 1, 'K18 blocked for a 15 year old' ); \ No newline at end of file +my $offset = 0; +while ($offset<24) { + Time::Fake->offset("+${offset}h"); + ##Testing age restriction for a borrower. + my $now = DateTime->now(); + my $borrower = {}; + C4::Members::SetAge( $borrower, '0015-00-00' ); + + my ($restriction_age, $daysToAgeRestriction) = C4::Circulation::GetAgeRestriction('FSK 16', $borrower); + is ( ($daysToAgeRestriction > 0), 1, 'FSK 16 blocked for a 15 year old - $offset hours' ); + ($restriction_age, $daysToAgeRestriction) = C4::Circulation::GetAgeRestriction('PEGI 15', $borrower); + is ( ($daysToAgeRestriction <= 0), 1, 'PEGI 15 allowed for a 15 year old - $offset hours' ); + ($restriction_age, $daysToAgeRestriction) = C4::Circulation::GetAgeRestriction('PEGI14', $borrower); + is ( ($daysToAgeRestriction <= 0), 1, 'PEGI14 allowed for a 15 year old - $offset hours' ); + ($restriction_age, $daysToAgeRestriction) = C4::Circulation::GetAgeRestriction('Age 10', $borrower); + is ( ($daysToAgeRestriction <= 0), 1, 'Age 10 allowed for a 15 year old - $offset hours' ); + ($restriction_age, $daysToAgeRestriction) = C4::Circulation::GetAgeRestriction('K18', $borrower); + is ( ($daysToAgeRestriction > 0), 1, 'K18 blocked for a 15 year old - $offset hours' ); + $offset++; +} -- 2.1.4