From 580a13679b8d3ef1b457c55266b16d4c48512f53 Mon Sep 17 00:00:00 2001 From: Paul Poulain Date: Tue, 26 Jan 2016 14:03:21 +0000 Subject: [PATCH] Bug 7728: Adding unit test ReNewSubscription.t Content-Type: text/plain; charset=utf-8 Test plan: * run without the patch, the test will fail * run with the patch, the test will pass Signed-off-by: Marcel de Rooy --- t/db_dependent/Serials/ReNewSubscription.t | 106 +++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 t/db_dependent/Serials/ReNewSubscription.t diff --git a/t/db_dependent/Serials/ReNewSubscription.t b/t/db_dependent/Serials/ReNewSubscription.t new file mode 100644 index 0000000..21e06e0 --- /dev/null +++ b/t/db_dependent/Serials/ReNewSubscription.t @@ -0,0 +1,106 @@ +#!/usr/bin/perl + +# This script includes tests for ReNewSubscription + +# Copyright 2015 BibLibre, Paul Poulain +# +# This file is part of Koha. +# +# 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 => 1; +use Test::MockModule; +use t::lib::TestBuilder; +use t::lib::Mocks; + +use C4::Context; +use Koha::Database; +use C4::Serials; + +my $schema = Koha::Database->new->schema; +$schema->storage->txn_begin; + +my $builder = t::lib::TestBuilder->new(); +#my $library = $builder->build({ +# source => 'Subscription', +#}); + +#my $mContext = new Test::MockModule('C4::Context'); +#$mContext->mock( 'userenv', sub { +# return { branch => $library->{branchcode} }; +#}); + + +#my $dbh = C4::Context->dbh; # after start transaction of testbuilder + +# create fake numberpattern & fake periodicity +my $frequency = $builder->build({ + source => 'SubscriptionFrequency', + value => { + description => "daily", + unit => "day", + unitsperissue => 1, + }, +}); + +my $pattern = $builder->build({ + source => 'SubscriptionNumberpattern', + value => { + label => 'mock', + description =>'mock', + numberingmethod => 'Issue {X}', + add1 => 1, + every1 => 1, + setto1 => 100, + } +}); + +# Create fake subscription, daily subscription, duration 12 months, issues startint at #100 +my $subscription = $builder->build({ + source => 'Subscription', + value => { + biblionumber => 1, + startdate => '2015-01-01', + enddate => '2015-12-31', + aqbooksellerid => 1, + periodicity => $frequency->{id}, + numberpattern => $pattern->{id}, + monthlength => 12, + }, +}); + +my $subscriptionhistory = $builder->build({ + source => 'Subscriptionhistory', + value => { + subscriptionid => $subscription->{subscriptionid}, + histenddate => undef, + opacnote => 'Testing', + } +}); + +# Actual testing starts here! + +# Renew the subscription and check that enddate has not been set +ReNewSubscription($subscription->{subscriptionid},'',"2016-01-01",'','',12,''); +my @history = Koha::Subscription::Histories->search( {subscriptionid => $subscription->{subscriptionid} } ); + +is ( $history[0]->histenddate(), undef, 'subscription history not empty after renewal'); + +# End of tests + +$schema->storage->txn_rollback; + +1; -- 2.1.4