From f0b3c6a4f8e2e6cb70eb4fad1d3571a9d0464f6f Mon Sep 17 00:00:00 2001
From: Maryse Simard <maryse.simard@inlibro.com>
Date: Thu, 18 May 2023 16:22:55 -0400
Subject: [PATCH] Bug 17015: Corrections for tests
---
t/db_dependent/Circulation/CalcDateDue.t | 2 ++
t/db_dependent/Circulation/CalcFine.t | 1 +
.../Circulation/maxsuspensiondays.t | 6 ++++
t/db_dependent/Fines.t | 5 +++
t/db_dependent/Hold.t | 1 +
t/db_dependent/Holds/WaitingReserves.t | 1 +
.../Reserves/CancelExpiredReserves.t | 1 +
t/lib/TestBuilder.pm | 32 ++++++++++++++++++-
8 files changed, 48 insertions(+), 1 deletion(-)
diff --git a/t/db_dependent/Circulation/CalcDateDue.t b/t/db_dependent/Circulation/CalcDateDue.t
index 351e360941..5234dede0e 100755
--- a/t/db_dependent/Circulation/CalcDateDue.t
+++ b/t/db_dependent/Circulation/CalcDateDue.t
@@ -38,6 +38,8 @@ my $issuelength = 10;
my $renewalperiod = 5;
my $lengthunit = 'days';
+$builder->fill_discrete_calendar({ branchcode => $branchcode, start_date => '2013-01-01', days => 365 });
+
Koha::CirculationRules->search()->delete();
Koha::CirculationRules->set_rules(
{
diff --git a/t/db_dependent/Circulation/CalcFine.t b/t/db_dependent/Circulation/CalcFine.t
index d372d17339..17082f4dca 100755
--- a/t/db_dependent/Circulation/CalcFine.t
+++ b/t/db_dependent/Circulation/CalcFine.t
@@ -28,6 +28,7 @@ my $branch = $builder->build(
source => 'Branch',
}
);
+$builder->fill_discrete_calendar({ branchcode => $branch->{branchcode}, start_date => '2000-01-01' });
my $category = $builder->build(
{
diff --git a/t/db_dependent/Circulation/maxsuspensiondays.t b/t/db_dependent/Circulation/maxsuspensiondays.t
index 81e6e03692..95e060f292 100755
--- a/t/db_dependent/Circulation/maxsuspensiondays.t
+++ b/t/db_dependent/Circulation/maxsuspensiondays.t
@@ -125,6 +125,9 @@ subtest "suspension_chargeperiod" => sub {
my $patron = $builder->build_object({ class => 'Koha::Patrons' });
my $item = $builder->build_sample_item;
+ $builder->fill_discrete_calendar({ branchcode => $patron->{branchcode}, days => 365 });
+ $builder->fill_discrete_calendar({ branchcode => $item->homebranch, days => 365 });
+
my $last_year = dt_from_string->clone->subtract( years => 1 );
my $today = dt_from_string;
my $new_debar_dt = C4::Circulation::_calculate_new_debar_dt( $patron, $item, $last_year, $today );
@@ -151,6 +154,9 @@ subtest "maxsuspensiondays" => sub {
my $patron = $builder->build_object({ class => 'Koha::Patrons' });
my $item = $builder->build_sample_item;
+ $builder->fill_discrete_calendar({ branchcode => $patron->{branchcode}, days => 365 });
+ $builder->fill_discrete_calendar({ branchcode => $item->homebranch, days => 365 });
+
my $last_year = dt_from_string->clone->subtract( years => 1 );
my $today = dt_from_string;
my $new_debar_dt = C4::Circulation::_calculate_new_debar_dt( $patron, $item, $last_year, $today );
diff --git a/t/db_dependent/Fines.t b/t/db_dependent/Fines.t
index b604a3374a..9e8d2af91a 100755
--- a/t/db_dependent/Fines.t
+++ b/t/db_dependent/Fines.t
@@ -7,6 +7,7 @@ use C4::Overdues qw( CalcFine );
use Koha::Database;
use Koha::DateUtils qw( dt_from_string );
+use t::lib::TestBuilder;
use Test::More tests => 5;
my $schema = Koha::Database->new->schema;
@@ -31,6 +32,10 @@ my $issuingrule = Koha::CirculationRules->set_rules(
}
);
+my $builder = t::lib::TestBuilder->new();
+$builder->fill_discrete_calendar({ branchcode => '' });
+$builder->fill_discrete_calendar({ branchcode => '', start_date => '2000-01-01' });
+
ok( $issuingrule, 'Issuing rule created' );
my $period_start = dt_from_string('2000-01-01');
diff --git a/t/db_dependent/Hold.t b/t/db_dependent/Hold.t
index b96a917773..279ff04465 100755
--- a/t/db_dependent/Hold.t
+++ b/t/db_dependent/Hold.t
@@ -77,6 +77,7 @@ my $hold = Koha::Hold->new(
);
$hold->store();
+$builder->fill_discrete_calendar({ branchcode => $branches[1]->{branchcode}, start_date => '2017-01-01', days => dt_from_string->delta_days( dt_from_string( '2017-01-01' ) )->in_units( 'days') });
my $b1_cal = Koha::DiscreteCalendar->new({ branchcode => $branches[1]->{branchcode} });
my $holiday = dt_from_string('2017-01-02', 'iso');
$b1_cal->edit_holiday({
diff --git a/t/db_dependent/Holds/WaitingReserves.t b/t/db_dependent/Holds/WaitingReserves.t
index 73b025075a..f664c5a578 100755
--- a/t/db_dependent/Holds/WaitingReserves.t
+++ b/t/db_dependent/Holds/WaitingReserves.t
@@ -35,6 +35,7 @@ $builder->build({
},
});
+$builder->fill_discrete_calendar({ branchcode => 'LIB1' });
my $calendar = Koha::DiscreteCalendar->new({ branchcode => 'LIB1' });
$builder->build({
diff --git a/t/db_dependent/Reserves/CancelExpiredReserves.t b/t/db_dependent/Reserves/CancelExpiredReserves.t
index b8d8aaeb8d..4bff1f1767 100755
--- a/t/db_dependent/Reserves/CancelExpiredReserves.t
+++ b/t/db_dependent/Reserves/CancelExpiredReserves.t
@@ -81,6 +81,7 @@ subtest 'CancelExpiredReserves tests incl. holidays' => sub {
});
Koha::Caches->get_instance()->flush_all();
+ $builder->fill_discrete_calendar({ branchcode => 'LIB1 '});
my $calendar = Koha::DiscreteCalendar->new({ branchcode => 'LIB1' })->edit_holiday({
title => "My holiday",
holiday_type => $Koha::DiscreteCalendar::HOLIDAYS->{EXCEPTION},
diff --git a/t/lib/TestBuilder.pm b/t/lib/TestBuilder.pm
index 89331e96d0..213c0d7205 100644
--- a/t/lib/TestBuilder.pm
+++ b/t/lib/TestBuilder.pm
@@ -6,7 +6,7 @@ use Koha::Database qw( schema );
use C4::Biblio qw( AddBiblio );
use Koha::Biblios qw( _type );
use Koha::Items qw( _type );
-use Koha::DateUtils qw( dt_from_string );
+use Koha::DateUtils qw( dt_from_string output_pref );
use Bytes::Random::Secure;
use Carp qw( carp );
@@ -146,6 +146,10 @@ sub build {
if scalar @{ $fk->{keys} } == 1
}
+ if ($source eq 'Branch') {
+ $self->fill_discrete_calendar({ branchcode => $col_values->{branchcode} });
+ }
+
# store this record and return hashref
return $self->_storeColumnValues({
source => $source,
@@ -210,6 +214,32 @@ sub build_sample_item {
)->store->get_from_storage;
}
+sub fill_discrete_calendar {
+ my ( $self, $args ) = @_;
+
+ my $branchcode = $args->{branchcode} || '';
+ my $start_date = ($args->{start_date}) ? dt_from_string($args->{start_date}) : DateTime->today();
+ my $days = $args->{days} || 60;
+
+ my $end_date = $start_date->clone();
+ $start_date->add(days => 0 - $days);
+ $end_date->add(days => $days);
+
+ for (1; $start_date <= $end_date; $start_date->add(days => 1)) {
+ my $data = {
+ date => output_pref( { dt => $start_date, dateformat => 'iso', dateonly => 1 }),
+ branchcode => $branchcode,
+ is_opened => 1,
+ open_hour => "08:00:00",
+ close_hour => "17:00:00",
+ };
+
+ $self->schema->resultset( "DiscreteCalendar" )->update_or_create( $data );
+ }
+
+ return
+}
+
# ------------------------------------------------------------------------------
# Internal helper routines
--
2.34.1