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 <tomascohen@theke.io>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Jonathan Druart 2015-10-19 16:17:31 +01:00 committed by Tomas Cohen Arazi
parent 0dfa8c2b67
commit 00a4e802ed
1 changed files with 11 additions and 8 deletions

View File

@ -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 );