From ff6d1e0fb7eeae472b7e976e2ddf60d5b405b4e4 Mon Sep 17 00:00:00 2001 From: Arthur Suzuki Date: Thu, 18 Jul 2019 15:03:40 +0200 Subject: [PATCH] Bug 11999: add test for maxreserves in Reserves.t --- t/db_dependent/Reserves.t | 49 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/t/db_dependent/Reserves.t b/t/db_dependent/Reserves.t index b7b1d26dc41..51d41e97e60 100755 --- a/t/db_dependent/Reserves.t +++ b/t/db_dependent/Reserves.t @@ -17,7 +17,7 @@ use Modern::Perl; -use Test::More tests => 70; +use Test::More tests => 71; use Test::NoWarnings; use Test::MockModule; use Test::Warn; @@ -1351,6 +1351,53 @@ subtest 'AllowHoldOnPatronPossession test' => sub { ); }; +subtest 'check maxreserve test' => sub { + + plan tests => 2; + + $schema->storage->txn_begin; + t::lib::Mocks::mock_preference( 'maxreserves', 1 ); + + # Create the items and patrons we need + my $biblio_1 = $builder->build_sample_biblio(); + my $biblio_2 = $builder->build_sample_biblio(); + my $itype = $builder->build_object( { class => "Koha::ItemTypes", value => { notforloan => 0 } } ); + my $item_1 = $builder->build_sample_item( + { biblionumber => $biblio_1->biblionumber, notforloan => 0, itype => $itype->itemtype } ); + my $item_2 = $builder->build_sample_item( + { biblionumber => $biblio_2->biblionumber, notforloan => 0, itype => $itype->itemtype } ); + my $patron = $builder->build_object( + { + class => "Koha::Patrons", + value => { branchcode => $item_2->homebranch } + } + ); + + # Place a hold on the title for both patrons + my $reserve = AddReserve( + { + branchcode => $item_1->homebranch, + borrowernumber => $patron->borrowernumber, + biblionumber => $biblio_1->biblionumber, + priority => 1, + itemnumber => $item_1->itemnumber, + } + ); + + my $borrowernumber = $patron->borrowernumber; + + is( + C4::Reserves::CanBookBeReserved( $borrowernumber, $biblio_2->biblionumber )->{status}, 'tooManyReserves', + "CanBookBeReserved: Reserving more than maxreserves is forbidden" + ); + is( + C4::Reserves::CanItemBeReserved( $patron, $item_2, $item_2->homebranch )->{status}, 'tooManyReserves', + "CanItemBeReserved: Reserving more than maxreserves is forbidden" + ); + t::lib::Mocks::mock_preference( 'maxreserves', 20 ); + $schema->storage->txn_rollback; +}; + subtest 'MergeHolds' => sub { plan tests => 1; -- 2.39.5