From 66a97a0241d796905b3689b67cd7b0a7e5dbeaf3 Mon Sep 17 00:00:00 2001
From: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Date: Thu, 21 Feb 2019 17:27:57 -0300
Subject: [PATCH] Bug 18928: Update new occurrences

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Agustin Moyano <agustinmoyano@theke.io>
---
 t/db_dependent/Circulation/Branch.t                |  6 ----
 t/db_dependent/Circulation/SwitchOnSiteCheckouts.t |  4 ---
 t/db_dependent/Circulation/TooMany.t               |  4 ---
 .../Holds/DisallowHoldIfItemsAvailable.t           | 35 ++++++++++++++--------
 4 files changed, 22 insertions(+), 27 deletions(-)

diff --git a/t/db_dependent/Circulation/Branch.t b/t/db_dependent/Circulation/Branch.t
index 1c2d17a65f..dfd65d33d2 100644
--- a/t/db_dependent/Circulation/Branch.t
+++ b/t/db_dependent/Circulation/Branch.t
@@ -176,12 +176,6 @@ Koha::CirculationRules->set_rules(
     }
 );
 
-$query = q|
-    INSERT INTO default_circ_rules
-    (singleton, holdallowed, returnbranch)
-    VALUES( ?, ?, ? )
-|;
-$dbh->do( $query, {}, 'singleton', 3, 'homebranch' );
 Koha::CirculationRules->set_rules(
     {
         branchcode   => undef,
diff --git a/t/db_dependent/Circulation/SwitchOnSiteCheckouts.t b/t/db_dependent/Circulation/SwitchOnSiteCheckouts.t
index 7ef05ee49b..fed7bc2188 100644
--- a/t/db_dependent/Circulation/SwitchOnSiteCheckouts.t
+++ b/t/db_dependent/Circulation/SwitchOnSiteCheckouts.t
@@ -37,11 +37,7 @@ $schema->storage->txn_begin;
 
 our $dbh = C4::Context->dbh;
 
-$dbh->do(q|DELETE FROM branch_item_rules|);
 $dbh->do(q|DELETE FROM issues|);
-$dbh->do(q|DELETE FROM default_branch_circ_rules|);
-$dbh->do(q|DELETE FROM default_circ_rules|);
-$dbh->do(q|DELETE FROM default_branch_item_rules|);
 $dbh->do(q|DELETE FROM issuingrules|);
 
 my $builder = t::lib::TestBuilder->new();
diff --git a/t/db_dependent/Circulation/TooMany.t b/t/db_dependent/Circulation/TooMany.t
index 1f1c6a7ee0..ae8bb03cbb 100644
--- a/t/db_dependent/Circulation/TooMany.t
+++ b/t/db_dependent/Circulation/TooMany.t
@@ -43,10 +43,6 @@ $dbh->do(q|DELETE FROM branches|);
 $dbh->do(q|DELETE FROM categories|);
 $dbh->do(q|DELETE FROM accountlines|);
 $dbh->do(q|DELETE FROM itemtypes|);
-$dbh->do(q|DELETE FROM branch_item_rules|);
-$dbh->do(q|DELETE FROM default_branch_circ_rules|);
-$dbh->do(q|DELETE FROM default_circ_rules|);
-$dbh->do(q|DELETE FROM default_branch_item_rules|);
 $dbh->do(q|DELETE FROM issuingrules|);
 Koha::CirculationRules->search()->delete();
 
diff --git a/t/db_dependent/Holds/DisallowHoldIfItemsAvailable.t b/t/db_dependent/Holds/DisallowHoldIfItemsAvailable.t
index 4302170d02..7e4780ee86 100755
--- a/t/db_dependent/Holds/DisallowHoldIfItemsAvailable.t
+++ b/t/db_dependent/Holds/DisallowHoldIfItemsAvailable.t
@@ -118,9 +118,6 @@ AddReturn( $item1->{barcode} );
 
         my $hold_allowed_from_home_library = 1;
         my $hold_allowed_from_any_libraries = 2;
-        my $sth_delete_rules = $dbh->prepare(q|DELETE FROM default_circ_rules|);
-        my $sth_insert_rule = $dbh->prepare(q|INSERT INTO default_circ_rules(singleton, holdallowed, hold_fulfillment_policy, returnbranch) VALUES ('singleton', ?, 'any', 'homebranch');|);
-        my $sth_insert_branch_rule = $dbh->prepare(q|INSERT INTO default_branch_circ_rules(branchcode, holdallowed, hold_fulfillment_policy, returnbranch) VALUES (?, ?, 'any', 'homebranch');|);
 
         subtest 'Item is available at a different library' => sub {
             plan tests => 7;
@@ -135,15 +132,14 @@ AddReturn( $item1->{barcode} );
             #Borrower1 is from library A
 
             {
-                $sth_delete_rules->execute;
-                $sth_insert_rule->execute( $hold_allowed_from_home_library );
+                set_holdallowed_rule( $hold_allowed_from_home_library );
 
                 t::lib::Mocks::mock_preference('ReservesControlBranch', 'ItemHomeLibrary');
                 $is = IsAvailableForItemLevelRequest( $item1, $borrower1);
                 is( $is, 1, "Hold allowed from home library + ReservesControlBranch=ItemHomeLibrary, One item is available at different library, not holdable = none available => the hold is allowed at item level" );
                 $is = IsAvailableForItemLevelRequest( $item1, $borrower2);
                 is( $is, 1, "Hold allowed from home library + ReservesControlBranch=ItemHomeLibrary, One item is available at home library, holdable = one available => the hold is not allowed at item level" );
-                $sth_insert_branch_rule->execute( $library_B, $hold_allowed_from_any_libraries );
+                set_holdallowed_rule( $hold_allowed_from_any_libraries, $library_B );
                 #Adding a rule for the item's home library affects the availability for a borrower from another library because ReservesControlBranch is set to ItemHomeLibrary
                 $is = IsAvailableForItemLevelRequest( $item1, $borrower1);
                 is( $is, 0, "Hold allowed from home library + ReservesControlBranch=ItemHomeLibrary, One item is available at different library, holdable = one available => the hold is not allowed at item level" );
@@ -152,14 +148,13 @@ AddReturn( $item1->{barcode} );
                 $is = IsAvailableForItemLevelRequest( $item1, $borrower1);
                 is( $is, 1, "Hold allowed from home library + ReservesControlBranch=PatronLibrary, One item is available at different library, not holdable = none available => the hold is allowed at item level" );
                 #Adding a rule for the patron's home library affects the availability for an item from another library because ReservesControlBranch is set to PatronLibrary
-                $sth_insert_branch_rule->execute( $library_A, $hold_allowed_from_any_libraries );
+                set_holdallowed_rule( $hold_allowed_from_any_libraries, $library_A );
                 $is = IsAvailableForItemLevelRequest( $item1, $borrower1);
                 is( $is, 0, "Hold allowed from home library + ReservesControlBranch=PatronLibrary, One item is available at different library, holdable = one available => the hold is not allowed at item level" );
             }
 
             {
-                $sth_delete_rules->execute;
-                $sth_insert_rule->execute( $hold_allowed_from_any_libraries );
+                set_holdallowed_rule( $hold_allowed_from_any_libraries );
 
                 t::lib::Mocks::mock_preference('ReservesControlBranch', 'ItemHomeLibrary');
                 $is = IsAvailableForItemLevelRequest( $item1, $borrower1);
@@ -186,8 +181,7 @@ AddReturn( $item1->{barcode} );
             #ReservesControlBranch is not checked in these subs we are testing?
 
             {
-                $sth_delete_rules->execute;
-                $sth_insert_rule->execute( $hold_allowed_from_home_library );
+                set_holdallowed_rule( $hold_allowed_from_home_library );
 
                 t::lib::Mocks::mock_preference('ReservesControlBranch', 'ItemHomeLibrary');
                 $is = IsAvailableForItemLevelRequest( $item1, $borrower1);
@@ -199,8 +193,7 @@ AddReturn( $item1->{barcode} );
             }
 
             {
-                $sth_delete_rules->execute;
-                $sth_insert_rule->execute( $hold_allowed_from_any_libraries );
+                set_holdallowed_rule( $hold_allowed_from_any_libraries );
 
                 t::lib::Mocks::mock_preference('ReservesControlBranch', 'ItemHomeLibrary');
                 $is = IsAvailableForItemLevelRequest( $item1, $borrower1);
@@ -246,3 +239,19 @@ is( $is, 1, "Item can be held, items in transit are not available" );
 
 # Cleanup
 $schema->storage->txn_rollback;
+
+sub set_holdallowed_rule {
+    my ( $holdallowed, $branchcode ) = @_;
+    Koha::CirculationRules->set_rules(
+        {
+            branchcode   => $branchcode || undef,
+            categorycode => undef,
+            itemtype     => undef,
+            rules        => {
+                holdallowed              => $holdallowed,
+                hold_fulfillment_policy  => 'any',
+                returnbranch             => 'homebranch',
+            }
+        }
+    );
+}
-- 
2.11.0