From 23148ccd4ce9b09518f42ea37c4d7a5f7706da69 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Mon, 19 Oct 2015 16:17:31 +0100 Subject: [PATCH] Bug 15029: Make the IssueSlip tests pass even if launched after 23:00 Prior to this patch, the tests did not pass if they were launched after 23:00. DateTime complains if you ask for creating a date with hour => 24 (which is logical so far). Test plan: 0/ Don't apply this patch 1/ sudo date -s "2015-10-19 23:50:00";prove t/db_dependent/Members/IssueSlip.t 2/ Apply this patch and repeat 1. Signed-off-by: Tomas Cohen Arazi --- t/db_dependent/Members/IssueSlip.t | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/t/db_dependent/Members/IssueSlip.t b/t/db_dependent/Members/IssueSlip.t index 71abe67..8c32c21 100644 --- a/t/db_dependent/Members/IssueSlip.t +++ b/t/db_dependent/Members/IssueSlip.t @@ -126,6 +126,7 @@ EOS subtest 'Daily loans' => sub { plan tests => 2; + skip "It's 23:59!", 2 if $today->hour == 23 and $today->minute == 59; # Test 1: No overdue my $today_daily = $today->clone->set( hour => 23, minute => 59 ); my $today_daily_as_formatted = output_pref( $today_daily ); @@ -194,12 +195,13 @@ EOS subtest 'Hourly loans' => sub { plan tests => 2; + skip "It's 23:59!", 2 if $today->hour == 23 and $today->minute == 59; # Test 1: No overdue my ( $date_due_in_time, $date_due_in_time_as_formatted, $date_due_in_late, $date_due_in_late_as_formatted, $issue_date, $slip, $expected_slip ); # Assuming today is not hour = 23 and minute = 59 - $date_due_in_time = $today->clone->set(hour => $today->hour + 1); + $date_due_in_time = $today->clone->set(hour => ($today->hour < 23 ? $today->hour + 1 : 23), minute => 59); $date_due_in_time_as_formatted = output_pref( $date_due_in_time ); - $issue_date = $today->clone->subtract_duration( DateTime::Duration->new( minutes => 1 ) ); + $issue_date = $date_due_in_time->clone->subtract_duration( DateTime::Duration->new( minutes => 1 ) ); AddIssue( $borrower, $barcode1, $date_due_in_time, undef, $issue_date ); $issue_date = $yesterday->clone; AddIssue( $borrower, $barcode2, $date_due_in_time, undef, $issue_date ); @@ -227,9 +229,9 @@ EOS AddReturn( $barcode2, $branchcode ); # Test 2: 1 Overdue - $date_due_in_time = $today->clone->set(hour => $today->hour + 1); + $date_due_in_time = $today->clone->set(hour => ($today->hour < 23 ? $today->hour + 1 : 23), minute => 59); $date_due_in_time_as_formatted = output_pref( $date_due_in_time ); - $issue_date = $today->clone->subtract_duration( DateTime::Duration->new( minutes => 1 ) ); + $issue_date = $date_due_in_time->clone->subtract_duration( DateTime::Duration->new( minutes => 1 ) ); AddIssue( $borrower, $barcode1, $date_due_in_time, undef, $issue_date ); $date_due_in_late = $today->clone->set(hour => $today->hour - 1); $date_due_in_late_as_formatted = output_pref( $date_due_in_late ); @@ -275,6 +277,7 @@ EOS subtest 'Daily loans' => sub { plan tests => 2; + skip "It's 23:59!", 2 if $today->hour == 23 and $today->minute == 59; # Test 1: No overdue my $today_daily = $today->clone->set( hour => 23, minute => 59 ); my $today_daily_as_formatted = output_pref( $today_daily ); @@ -328,9 +331,9 @@ EOS # Test 1: No overdue my ( $date_due_in_time, $date_due_in_time_as_formatted, $date_due_in_late, $date_due_in_late_as_formatted, $issue_date, $slip, $expected_slip ); # Assuming today is not hour = 23 and minute = 59 - $date_due_in_time = $today->clone->set(hour => $today->hour + 1); + $date_due_in_time = $today->clone->set(hour => ($today->hour < 23 ? $today->hour + 1 : 23), minute => 59); $date_due_in_time_as_formatted = output_pref( $date_due_in_time ); - $issue_date = $today->clone->subtract_duration( DateTime::Duration->new( minutes => 1 ) ); + $issue_date = $date_due_in_time->clone->subtract_duration( DateTime::Duration->new( minutes => 1 ) ); AddIssue( $borrower, $barcode1, $date_due_in_time, undef, $issue_date ); $issue_date = $yesterday->clone; AddIssue( $borrower, $barcode2, $date_due_in_time, undef, $issue_date ); @@ -350,9 +353,9 @@ EOS AddReturn( $barcode2, $branchcode ); # Test 2: 1 Overdue - $date_due_in_time = $today->clone->set(hour => $today->hour + 1); + $date_due_in_time = $today->clone->set(hour => ($today->hour < 23 ? $today->hour + 1 : 23), minute => 59); $date_due_in_time_as_formatted = output_pref( $date_due_in_time ); - $issue_date = $today->clone->subtract_duration( DateTime::Duration->new( minutes => 1 ) ); + $issue_date = $date_due_in_time->clone->subtract_duration( DateTime::Duration->new( minutes => 1 ) ); AddIssue( $borrower, $barcode1, $date_due_in_time, undef, $issue_date ); $date_due_in_late = $today->clone->set(hour => $today->hour - 1); $date_due_in_late_as_formatted = output_pref( $date_due_in_late ); -- 2.6.2