Bug 18958: Unit tests
[srvgit] / t / db_dependent / Reserves.t
index 26f1f48..f1cdd06 100755 (executable)
@@ -17,7 +17,7 @@
 
 use Modern::Perl;
 
-use Test::More tests => 63;
+use Test::More tests => 64;
 use Test::MockModule;
 use Test::Warn;
 
@@ -1075,6 +1075,84 @@ subtest 'RevertWaitingStatus' => sub {
     );
 };
 
+subtest 'CheckReserves additional test' => sub {
+
+    plan tests => 3;
+
+    my $item = $builder->build_sample_item;
+    my $reserve1 = $builder->build_object(
+        {
+            class => "Koha::Holds",
+            value => {
+                found            => undef,
+                priority         => 1,
+                itemnumber       => undef,
+                biblionumber     => $item->biblionumber,
+                waitingdate      => undef,
+                cancellationdate => undef,
+                item_level_hold  => 0,
+                lowestPriority   => 0,
+                expirationdate   => undef,
+                suspend_until    => undef,
+                suspend          => 0,
+                itemtype         => undef,
+            }
+        }
+    );
+    my $reserve2 = $builder->build_object(
+        {
+            class => "Koha::Holds",
+            value => {
+                found            => undef,
+                priority         => 2,
+                biblionumber     => $item->biblionumber,
+                borrowernumber   => $reserve1->borrowernumber,
+                itemnumber       => undef,
+                waitingdate      => undef,
+                cancellationdate => undef,
+                item_level_hold  => 0,
+                lowestPriority   => 0,
+                expirationdate   => undef,
+                suspend_until    => undef,
+                suspend          => 0,
+                itemtype         => undef,
+            }
+        }
+    );
+
+    my $tmp_holdsqueue = $builder->build(
+        {
+            source => 'TmpHoldsqueue',
+            value  => {
+                borrowernumber => $reserve1->borrowernumber,
+                biblionumber   => $reserve1->biblionumber,
+            }
+        }
+    );
+    my $fill_target = $builder->build(
+        {
+            source => 'HoldFillTarget',
+            value  => {
+                borrowernumber     => $reserve1->borrowernumber,
+                biblionumber       => $reserve1->biblionumber,
+                itemnumber         => $item->itemnumber,
+                item_level_request => 0,
+            }
+        }
+    );
+
+    ModReserveAffect( $item->itemnumber, $reserve1->borrowernumber, 1,
+        $reserve1->reserve_id );
+    my ( $status, $matched_reserve, $possible_reserves ) =
+      CheckReserves( $item->itemnumber );
+
+    is( $status, 'Reserved', "We found a reserve" );
+    is( $matched_reserve->{reserve_id},
+        $reserve1->reserve_id, "We got the Transit reserve" );
+    is( scalar @$possible_reserves, 1, 'We only get the one matched' );
+
+};
+
 sub count_hold_print_messages {
     my $message_count = $dbh->selectall_arrayref(q{
         SELECT COUNT(*)