use Modern::Perl;
use C4::Context;
+use Koha::CirculationRules;
use Test::More tests => 4;
use t::lib::TestBuilder;
+use Koha::Holds;
+
BEGIN {
use FindBin;
use lib $FindBin::Bin;
- use_ok('C4::Reserves');
+ use_ok('C4::Reserves', qw( AddReserve CheckReserves ));
}
my $schema = Koha::Database->schema;
$dbh->do("DELETE FROM transport_cost");
$dbh->do("DELETE FROM tmp_holdsqueue");
$dbh->do("DELETE FROM hold_fill_targets");
-$dbh->do("DELETE FROM default_branch_circ_rules");
-$dbh->do("DELETE FROM default_branch_item_rules");
-$dbh->do("DELETE FROM default_circ_rules");
-$dbh->do("DELETE FROM branch_item_rules");
$dbh->do("INSERT INTO biblio (frameworkcode, author, title, datecreated) VALUES ('', 'Koha test', '$bib_title', '2011-02-01')");
$dbh->selectrow_array("SELECT itemnumber FROM items WHERE biblionumber = $biblionumber")
or BAIL_OUT("Cannot find newly created item");
-$dbh->do("DELETE FROM default_circ_rules");
-$dbh->do("INSERT INTO default_circ_rules ( holdallowed, hold_fulfillment_policy ) VALUES ( 2, 'any' )");
+$dbh->do("DELETE FROM circulation_rules");
+Koha::CirculationRules->set_rules(
+ {
+ itemtype => undef,
+ branchcode => undef,
+ rules => {
+ holdallowed => 2,
+ hold_fulfillment_policy => 'any',
+ }
+ }
+);
# Itemtypes match
-my $reserve_id = AddReserve( $branchcode, $borrowernumber, $biblionumber, '', 1, undef, undef, undef, undef, undef, undef, $right_itemtype );
+my $reserve_id = AddReserve(
+ {
+ branchcode => $branchcode,
+ borrowernumber => $borrowernumber,
+ biblionumber => $biblionumber,
+ priority => 1,
+ itemtype => $right_itemtype,
+ }
+);
my ( $status ) = CheckReserves($itemnumber);
is( $status, 'Reserved', "Hold where itemtype matches item's itemtype targed" );
-CancelReserve( { reserve_id => $reserve_id } );
+Koha::Holds->find( $reserve_id )->cancel;
# Itemtypes don't match
-$reserve_id = AddReserve( $branchcode, $borrowernumber, $biblionumber, '', 1, undef, undef, undef, undef, undef, undef, $wrong_itemtype );
+$reserve_id = AddReserve(
+ {
+ branchcode => $branchcode,
+ borrowernumber => $borrowernumber,
+ biblionumber => $biblionumber,
+ priority => 1,
+ itemtype => $wrong_itemtype,
+ }
+);
+
( $status ) = CheckReserves($itemnumber);
is($status, q{}, "Hold where itemtype does not match item's itemtype not targeted" );
-CancelReserve( { reserve_id => $reserve_id } );
+Koha::Holds->find( $reserve_id )->cancel;
# No itemtype set
-$reserve_id = AddReserve( $branchcode, $borrowernumber, $biblionumber, '', 1, undef, undef, undef, undef, undef, undef, undef );
+$reserve_id = AddReserve(
+ {
+ branchcode => $branchcode,
+ borrowernumber => $borrowernumber,
+ biblionumber => $biblionumber,
+ priority => 1,
+ }
+);
( $status ) = CheckReserves($itemnumber);
is( $status, 'Reserved', "Item targeted with no hold itemtype set" );
-CancelReserve( { reserve_id => $reserve_id } );
+Koha::Holds->find( $reserve_id )->cancel;
# Cleanup
$schema->storage->txn_rollback;