X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=t%2Fdb_dependent%2FHolds%2FHoldFulfillmentPolicy.t;h=cfc725edf46cc21f9179b2d1af119a1f749361ac;hb=a57723fc594e92a197da9470959d4067e3d63221;hp=33c0b1f6c1a3e10cb1c9dde40de0daf7f4e63aa5;hpb=1a688ae9e02f36a22890de44fb2ce7cdd0599c2d;p=koha.git diff --git a/t/db_dependent/Holds/HoldFulfillmentPolicy.t b/t/db_dependent/Holds/HoldFulfillmentPolicy.t index 33c0b1f6c1..cfc725edf4 100755 --- a/t/db_dependent/Holds/HoldFulfillmentPolicy.t +++ b/t/db_dependent/Holds/HoldFulfillmentPolicy.t @@ -4,9 +4,11 @@ use Modern::Perl; use C4::Context; -use Test::More tests => 10; +use Test::More tests => 11; use t::lib::TestBuilder; +use t::lib::Mocks; +use Koha::Holds; BEGIN { use_ok('C4::Reserves'); @@ -79,19 +81,19 @@ $dbh->do("INSERT INTO default_circ_rules ( holdallowed, hold_fulfillment_policy my $reserve_id = AddReserve( $library_A, $borrowernumber, $biblionumber, '', 1 ); my ( $status ) = CheckReserves($itemnumber); is( $status, 'Reserved', "Hold where pickup branch matches home branch targeted" ); -CancelReserve( { reserve_id => $reserve_id } ); +Koha::Holds->find( $reserve_id )->cancel; # Holding branch matches pickup branch $reserve_id = AddReserve( $library_B, $borrowernumber, $biblionumber, '', 1 ); ( $status ) = CheckReserves($itemnumber); is($status, q{}, "Hold where pickup ne home, pickup eq home not targeted" ); -CancelReserve( { reserve_id => $reserve_id } ); +Koha::Holds->find( $reserve_id )->cancel; # Neither branch matches pickup branch $reserve_id = AddReserve( $library_C, $borrowernumber, $biblionumber, '', 1 ); ( $status ) = CheckReserves($itemnumber); is( $status, q{}, "Hold where pickup ne home, pickup ne holding not targeted" ); -CancelReserve( { reserve_id => $reserve_id } ); +Koha::Holds->find( $reserve_id )->cancel; # With hold_fulfillment_policy = holdingbranch, hold should only be picked up if pickup branch = holdingbranch $dbh->do("DELETE FROM default_circ_rules"); @@ -101,19 +103,19 @@ $dbh->do("INSERT INTO default_circ_rules ( holdallowed, hold_fulfillment_policy $reserve_id = AddReserve( $library_A, $borrowernumber, $biblionumber, '', 1 ); ( $status ) = CheckReserves($itemnumber); is( $status, q{}, "Hold where pickup eq home, pickup ne holding not targeted" ); -CancelReserve( { reserve_id => $reserve_id } ); +Koha::Holds->find( $reserve_id )->cancel; # Holding branch matches pickup branch $reserve_id = AddReserve( $library_B, $borrowernumber, $biblionumber, '', 1 ); ( $status ) = CheckReserves($itemnumber); is( $status, 'Reserved', "Hold where pickup ne home, pickup eq holding targeted" ); -CancelReserve( { reserve_id => $reserve_id } ); +Koha::Holds->find( $reserve_id )->cancel; # Neither branch matches pickup branch $reserve_id = AddReserve( $library_C, $borrowernumber, $biblionumber, '', 1 ); ( $status ) = CheckReserves($itemnumber); is( $status, q{}, "Hold where pickup ne home, pickup ne holding not targeted" ); -CancelReserve( { reserve_id => $reserve_id } ); +Koha::Holds->find( $reserve_id )->cancel; # With hold_fulfillment_policy = any, hold should be pikcup up reguardless of matching home or holding branch $dbh->do("DELETE FROM default_circ_rules"); @@ -123,16 +125,33 @@ $dbh->do("INSERT INTO default_circ_rules ( holdallowed, hold_fulfillment_policy $reserve_id = AddReserve( $library_A, $borrowernumber, $biblionumber, '', 1 ); ( $status ) = CheckReserves($itemnumber); is( $status, 'Reserved', "Hold where pickup eq home, pickup ne holding targeted" ); -CancelReserve( { reserve_id => $reserve_id } ); +Koha::Holds->find( $reserve_id )->cancel; # Holding branch matches pickup branch $reserve_id = AddReserve( $library_B, $borrowernumber, $biblionumber, '', 1 ); ( $status ) = CheckReserves($itemnumber); is( $status, 'Reserved', "Hold where pickup ne home, pickup eq holding targeted" ); -CancelReserve( { reserve_id => $reserve_id } ); +Koha::Holds->find( $reserve_id )->cancel; # Neither branch matches pickup branch $reserve_id = AddReserve( $library_C, $borrowernumber, $biblionumber, '', 1 ); ( $status ) = CheckReserves($itemnumber); is( $status, 'Reserved', "Hold where pickup ne home, pickup ne holding targeted" ); -CancelReserve( { reserve_id => $reserve_id } ); +Koha::Holds->find( $reserve_id )->cancel; + +# Test enforement of branch transfer limits +t::lib::Mocks::mock_preference( 'UseBranchTransferLimits', '1' ); +t::lib::Mocks::mock_preference( 'BranchTransferLimitsType', 'itemtype' ); +Koha::Holds->search()->delete(); +my ($item) = Koha::Biblios->find($biblionumber)->items; +my $limit = Koha::Item::Transfer::Limit->new( + { + toBranch => $library_C, + fromBranch => $item->holdingbranch, + itemtype => $item->effective_itemtype, + } +)->store(); +$reserve_id = AddReserve( $library_C, $borrowernumber, $biblionumber, '', 1 ); +($status) = CheckReserves($itemnumber); +is( $status, '', "No hold where branch transfer is not allowed" ); +Koha::Holds->find($reserve_id)->cancel;