From de98181faee6f99be49b43117a8c3fd17d9ac1a6 Mon Sep 17 00:00:00 2001 From: Maryse Simard 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 95cbbe0bec..36e58705b2 100755 --- a/t/db_dependent/Circulation/CalcDateDue.t +++ b/t/db_dependent/Circulation/CalcDateDue.t @@ -26,6 +26,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 23607b3160..9e5ab9b64f 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 05fb264796..8a23fef482 100755 --- a/t/db_dependent/Circulation/maxsuspensiondays.t +++ b/t/db_dependent/Circulation/maxsuspensiondays.t @@ -127,6 +127,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->unblessed, $item->unblessed, $last_year, $today ); @@ -153,6 +156,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->unblessed, $item->unblessed, $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