From 9b0a13ef54e3410bd903e60f0d1fe53025db98f3 Mon Sep 17 00:00:00 2001 From: Andreas Jonsson Date: Mon, 22 Jan 2018 08:50:10 +0000 Subject: [PATCH] Bug 20478: Add unit test for advance_notices.pl cronjob. --- t/db_dependent/cronjobs/advance_notices_digest.t | 174 +++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 t/db_dependent/cronjobs/advance_notices_digest.t diff --git a/t/db_dependent/cronjobs/advance_notices_digest.t b/t/db_dependent/cronjobs/advance_notices_digest.t new file mode 100644 index 0000000..d422e59 --- /dev/null +++ b/t/db_dependent/cronjobs/advance_notices_digest.t @@ -0,0 +1,174 @@ +#!/usr/bin/perl +# +# This file is part of Koha. +# +# Copyright (C) 2018 Andreas Jonsson +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + +use Modern::Perl; + +use Test::More tests => 3; +use t::lib::TestBuilder; +use DateTime; +use File::Spec; +use File::Basename; +use Data::Dumper; + +my $scriptDir = dirname(File::Spec->rel2abs( __FILE__ )); + +my $dbh = C4::Context->dbh; + +# Set only to avoid exception. +$ENV{"OVERRIDE_SYSPREF_dateformat"} = 'metric'; + +$dbh->{AutoCommit} = 0; +$dbh->{RaiseError} = 1; + +my $builder = t::lib::TestBuilder->new; + +my $library1 = $builder->build({ + source => 'Branch', +}); +my $library2 = $builder->build({ + source => 'Branch', +}); +my $library3 = $builder->build({ + source => 'Branch', +}); +my $borrower = $builder->build({ + source => 'Borrower', + value => { + branchcode => $library1->{branchcode}, + } +}); +$dbh->do(<build({ + source => 'MessageAttribute', + value => { + message_name => 'advance_notice' + } +}); + +my $letter = $builder->build({ + source => 'Letter', + value => { + module => 'circulation', + code => 'PREDUEDGST', + branchcode => '', + message_transport_type => 'email', + lang => 'default', + is_html => 0, + content => '<> <>' + } +}); +my $borrower_message_preference = $builder->build({ + source => 'BorrowerMessagePreference', + value => { + borrowernumber => $borrower->{borrowernumber}, + wants_digest => 1, + days_in_advance => 1, + message_attribute_id => $message_attribute->{message_attribute_id} + } +}); + +my $borrower_message_transport_preference = $builder->build({ + source => 'BorrowerMessageTransportPreference', + value => { + borrower_message_preference_id => $borrower_message_preference->{borrower_message_preference_id}, + message_transport_type => 'email' + } +}); + +my $biblio = $builder->build({ + source => 'Biblio', +}); +my $biblioitem = $builder->build({ + source => 'Biblioitem', + value => { + biblionumber => $biblio->{biblionumber} + } +}); +my $item1 = $builder->build({ + source => 'Item' +}); +my $item2 = $builder->build({ + source => 'Item' +}); +my $now = DateTime->now(); +my $tomorrow = $now->add(days => 1)->strftime('%F'); + +my $issue1 = $builder->build({ + source => 'Issue', + value => { + date_due => $tomorrow, + itemnumber => $item1->{itemnumber}, + branchcode => $library1->{branchcode}, + borrowernumber => $borrower->{borrowernumber}, + returndate => undef + } +}); + +my $issue2 = $builder->build({ + source => 'Issue', + value => { + date_due => $tomorrow, + itemnumber => $item2->{itemnumber}, + branchcode => $library2->{branchcode}, + branchcode => $library3->{branchcode}, + borrowernumber => $borrower->{borrowernumber}, + returndate => undef + } +}); + +C4::Context->set_preference('EnhancedMessagingPreferences', 1); + +my $script = ''; +my $scriptFile = "$scriptDir/../../../misc/cronjobs/advance_notices.pl"; +open SCRIPT, "<", $scriptFile or die "Failed to open $scriptFile: $!"; + +while (