From 6fd3ee0da07bcb0d5c17d7c1505f43754b73abbc Mon Sep 17 00:00:00 2001
From: Tomas Cohen Arazi <tomascohen@theke.io>
Date: Fri, 8 Jul 2016 09:45:12 -0300
Subject: [PATCH] Bug 14504: (QA followup) Tidy tests

This patch re-introduces the transaction into t/db_dependent/Items_DelItemCheck.t
and does some cleaning on the touched tests so they raise less warnings.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
---
 t/db_dependent/Circulation/IsItemIssued.t | 34 ++++++++++++++++++++------
 t/db_dependent/Items_DelItemCheck.t       | 40 ++++++++++++++++++++++++-------
 t/db_dependent/Reserves.t                 |  8 ++++---
 3 files changed, 63 insertions(+), 19 deletions(-)

diff --git a/t/db_dependent/Circulation/IsItemIssued.t b/t/db_dependent/Circulation/IsItemIssued.t
index bafc405..2e1817e 100644
--- a/t/db_dependent/Circulation/IsItemIssued.t
+++ b/t/db_dependent/Circulation/IsItemIssued.t
@@ -1,5 +1,24 @@
+#!/usr/bin/perl
+
+# 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 <http://www.gnu.org/licenses>.
+
 use Modern::Perl;
+
 use Test::More tests => 5;
+use Test::MockModule;
 
 use C4::Biblio;
 use C4::Circulation;
@@ -12,17 +31,21 @@ use t::lib::TestBuilder;
 
 use MARC::Record;
 
-*C4::Context::userenv = \&Mock_userenv;
-
 my $schema = Koha::Database->schema;
 $schema->storage->txn_begin;
 my $builder = t::lib::TestBuilder->new;
-my $dbh = C4::Context->dbh;
 
 my $library = $builder->build({
     source => 'Branch',
 });
 
+my $module = new Test::MockModule('C4::Context');
+$module->mock('userenv', sub {
+    {
+       branch => $library->{branchcode}
+    }
+});
+
 my $borrowernumber = AddMember(
     firstname =>  'my firstname',
     surname => 'my surname',
@@ -60,7 +83,4 @@ is(
 
 $schema->storage->txn_rollback;
 
-# C4::Context->userenv
-sub Mock_userenv {
-    return { branch => $library->{branchcode} };
-}
+1;
diff --git a/t/db_dependent/Items_DelItemCheck.t b/t/db_dependent/Items_DelItemCheck.t
index abe6600..20b3b11 100644
--- a/t/db_dependent/Items_DelItemCheck.t
+++ b/t/db_dependent/Items_DelItemCheck.t
@@ -1,21 +1,39 @@
+#!/usr/bin/perl
+
+# 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 <http://www.gnu.org/licenses>.
+
 use Modern::Perl;
 
 use C4::Circulation;
+use Koha::Database;
 
 use t::lib::TestBuilder;
 use t::lib::Mocks;
 
 use Test::More tests => 9;
-
-*C4::Context::userenv = \&Mock_userenv;
+use Test::MockModule;
 
 BEGIN {
     use_ok('C4::Items');
 }
 
-my $dbh = C4::Context->dbh;
-
 my $builder = t::lib::TestBuilder->new();
+my $schema = Koha::Database->new->schema;
+# Begin transaction
+$schema->storage->txn_begin;
 
 my $branch = $builder->build(
     {
@@ -23,6 +41,13 @@ my $branch = $builder->build(
     }
 );
 
+my $module = new Test::MockModule('C4::Context');
+$module->mock('userenv', sub {
+    {  flags  => 0,
+       branch => $branch->{branchcode}
+    }
+});
+
 my $branch2 = $builder->build(
     {
         source => 'Branch',
@@ -140,9 +165,6 @@ is( $test_item->{itemnumber}, undef,
     "DelItemCheck should delete item if ItemSafeToDelete returns true"
 );
 
-# End of testing
+$schema->storage->txn_rollback;
 
-# C4::Context->userenv
-sub Mock_userenv {
-    return { flags => 0, branch => $branch->{branchcode} };
-}
+1;
diff --git a/t/db_dependent/Reserves.t b/t/db_dependent/Reserves.t
index da8694c..5db54b1 100755
--- a/t/db_dependent/Reserves.t
+++ b/t/db_dependent/Reserves.t
@@ -18,6 +18,7 @@
 use Modern::Perl;
 
 use Test::More tests => 73;
+use Test::MockModule;
 use Test::Warn;
 
 use MARC::Record;
@@ -39,9 +40,10 @@ BEGIN {
 }
 
 # a very minimal mack of userenv for use by the test of DelItemCheck
-*C4::Context::userenv = sub {
-    return {};
-};
+my $module = new Test::MockModule('C4::Context');
+$module->mock('userenv', sub {
+    { }
+});
 
 my $dbh = C4::Context->dbh;
 
-- 
2.9.0