From d00f531afe081c76d2402704722f5f21c27508c7 Mon Sep 17 00:00:00 2001
From: Kyle M Hall <kyle@bywatersolutions.com>
Date: Wed, 4 Jun 2014 09:45:49 -0400
Subject: [PATCH] Bug 5144 [1] - Unit test

---
 t/db_dependent/Reserves.t |   26 ++++++++++++++++++++++----
 1 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/t/db_dependent/Reserves.t b/t/db_dependent/Reserves.t
index 4676a60..7cbad69 100755
--- a/t/db_dependent/Reserves.t
+++ b/t/db_dependent/Reserves.t
@@ -17,7 +17,7 @@
 
 use Modern::Perl;
 
-use Test::More tests => 53;
+use Test::More tests => 54;
 
 use MARC::Record;
 use DateTime::Duration;
@@ -153,6 +153,13 @@ $requesters{'CPL'} = AddMember(
     categorycode => 'PT',
     surname      => 'borrower from CPL',
 );
+for my $i ( 2 .. 5 ) {
+    $requesters{"CPL$i"} = AddMember(
+        branchcode   => 'CPL',
+        categorycode => 'PT',
+        surname      => 'borrower $i from CPL',
+    );
+}
 $requesters{'FPL'} = AddMember(
     branchcode   => 'FPL',
     categorycode => 'PT',
@@ -389,11 +396,12 @@ ModReserveAffect( $itemnumber,  $requesters{'CPL'} , 0); #confirm hold
 is(defined $results[3]?1:0, 1, 'GetReservesFromItemnumber returns a future wait (confirmed future hold)');
 # End of tests for bug 9788
 
+$dbh->do("DELETE FROM reserves WHERE biblionumber=?",undef,($bibnum));
 # Tests for CalculatePriority (bug 8918)
 my $p = C4::Reserves::CalculatePriority($bibnum2);
 is($p, 4, 'CalculatePriority should now return priority 4');
 $resdate=undef;
-AddReserve('CPL',  $requesters{'CPL'}, $bibnum2,
+AddReserve('CPL',  $requesters{'CPL2'}, $bibnum2,
            $constraint, $bibitems,  $p, $resdate, $expdate, $notes,
            $title,      $checkitem, $found);
 $p = C4::Reserves::CalculatePriority($bibnum2);
@@ -412,7 +420,7 @@ ModReserveAffect( $itemnumber,  $requesters{'CPL'} , 0);
 $p = C4::Reserves::CalculatePriority($bibnum);
 is($p, 1, 'CalculatePriority should now return priority 1');
 #add another biblio hold, no resdate
-AddReserve('CPL',  $requesters{'CPL'}, $bibnum,
+AddReserve('CPL',  $requesters{'CPL3'}, $bibnum,
            $constraint, $bibitems,  $p, $resdate, $expdate, $notes,
            $title,      $checkitem, $found);
 $p = C4::Reserves::CalculatePriority($bibnum);
@@ -421,7 +429,7 @@ is($p, 2, 'CalculatePriority should now return priority 2');
 C4::Context->set_preference('AllowHoldDateInFuture', 1);
 $resdate= dt_from_string();
 $resdate->add_duration(DateTime::Duration->new(days => 1));
-AddReserve('CPL',  $requesters{'CPL'}, $bibnum,
+AddReserve('CPL',  $requesters{'CPL4'}, $bibnum,
            $constraint, $bibitems,  $p, output_pref($resdate), $expdate, $notes,
            $title,      $checkitem, $found);
 $p = C4::Reserves::CalculatePriority($bibnum);
@@ -506,6 +514,16 @@ is( C4::Reserves::CanBookBeReserved($borrowernumber, $biblionumber) , 'OK', "Res
 ####### EO Bug 13113 <<<
        ####
 
+AddReserve('CPL',  $requesters{'CPL'}, $item_bibnum,
+           $constraint, $bibitems,  1, undef, $expdate, $notes,
+           $title,      $checkitem, '');
+my ($count) = C4::Context->dbh->selectrow_array(
+'SELECT COUNT(*) FROM reserves WHERE biblionumber = ? AND borrowernumber = ?',
+    undef,
+    ( $item_bibnum, $requesters{'CPL'} )
+);
+ok( $count == 1, 'Duplicate hold not placed (Bug 5144)' );
+
 $dbh->rollback;
 
 sub count_hold_print_messages {
-- 
1.7.2.5