10 use Test
::More tests
=> 4;
12 use t
::lib
::TestBuilder
;
16 use lib
$FindBin::Bin
;
17 use_ok
('C4::Reserves');
20 my $schema = Koha
::Database
->schema;
21 $schema->storage->txn_begin;
22 my $dbh = C4
::Context
->dbh;
24 my $builder = t
::lib
::TestBuilder
->new;
26 my $library1 = $builder->build({
31 C4
::Context
->_new_userenv('xxx');
32 C4
::Context
->set_userenv(0,0,0,'firstname','surname', $library1->{branchcode
}, 'Midway Public Library', '', '', '');
34 my $bib_title = "Test Title";
36 my $borrower1 = $builder->build({
39 branchcode
=> $library1->{branchcode
},
40 dateexpiry
=> '3000-01-01',
44 my $borrower2 = $builder->build({
47 branchcode
=> $library1->{branchcode
},
48 dateexpiry
=> '3000-01-01',
52 # Test hold_fulfillment_policy
53 my ( $itemtype ) = @
{ $dbh->selectrow_arrayref("SELECT itemtype FROM itemtypes LIMIT 1") };
54 my $borrowernumber1 = $borrower1->{borrowernumber
};
55 my $borrowernumber2 = $borrower2->{borrowernumber
};
56 my $library_A = $library1->{branchcode
};
58 $dbh->do("INSERT INTO biblio (frameworkcode, author, title, datecreated) VALUES ('', 'Koha test', '$bib_title', '2011-02-01')");
60 my $biblionumber = $dbh->selectrow_array("SELECT biblionumber FROM biblio WHERE title = '$bib_title'")
61 or BAIL_OUT
("Cannot find newly created biblio record");
63 $dbh->do("INSERT INTO biblioitems (biblionumber, marcxml, itemtype) VALUES ($biblionumber, '', '$itemtype')");
65 my $biblioitemnumber =
66 $dbh->selectrow_array("SELECT biblioitemnumber FROM biblioitems WHERE biblionumber = $biblionumber")
67 or BAIL_OUT
("Cannot find newly created biblioitems record");
70 INSERT INTO items (barcode, biblionumber, biblioitemnumber, homebranch, holdingbranch, notforloan, damaged, itemlost, withdrawn, onloan, itype)
71 VALUES ('AllowHoldIf1', $biblionumber, $biblioitemnumber, '$library_A', '$library_A', 0, 0, 0, 0, NULL, '$itemtype')
75 $dbh->selectrow_array("SELECT itemnumber FROM items WHERE biblionumber = $biblionumber")
76 or BAIL_OUT
("Cannot find newly created item");
78 my $item1 = GetItem
( $itemnumber1 );
81 INSERT INTO items (barcode, biblionumber, biblioitemnumber, homebranch, holdingbranch, notforloan, damaged, itemlost, withdrawn, onloan, itype)
82 VALUES ('AllowHoldIf2', $biblionumber, $biblioitemnumber, '$library_A', '$library_A', 0, 0, 0, 0, NULL, '$itemtype')
86 $dbh->selectrow_array("SELECT itemnumber FROM items WHERE biblionumber = $biblionumber ORDER BY itemnumber DESC")
87 or BAIL_OUT
("Cannot find newly created item");
89 my $item2 = GetItem
( $itemnumber2 );
91 $dbh->do("DELETE FROM issuingrules");
92 my $rule = Koha
::IssuingRule
->new(
100 reservesallowed
=> 99,
106 my $is = IsAvailableForItemLevelRequest
( $item1, $borrower1);
107 is
( $is, 0, "Item cannot be held, 2 items available" );
109 AddIssue
( $borrower2, $item1->{barcode
} );
111 $is = IsAvailableForItemLevelRequest
( $item1, $borrower1);
112 is
( $is, 0, "Item cannot be held, 1 item available" );
114 AddIssue
( $borrower2, $item2->{barcode
} );
116 $is = IsAvailableForItemLevelRequest
( $item1, $borrower1);
117 is
( $is, 1, "Item can be held, no items available" );
120 $schema->storage->txn_rollback;