|
Lines 4-12
use Modern::Perl;
Link Here
|
| 4 |
|
4 |
|
| 5 |
use C4::Members qw/AddMember GetMember GetBorrowercategory/; |
5 |
use C4::Members qw/AddMember GetMember GetBorrowercategory/; |
| 6 |
use C4::Branch; |
6 |
use C4::Branch; |
|
|
7 |
use C4::Biblio; |
| 8 |
use C4::Items; |
| 9 |
use C4::Reserves; |
| 7 |
use CGI qw ( -utf8 ); |
10 |
use CGI qw ( -utf8 ); |
|
|
11 |
use t::lib::Mocks; |
| 8 |
|
12 |
|
| 9 |
use Test::More tests => 15; |
13 |
use Test::More tests => 23; |
| 10 |
|
14 |
|
| 11 |
BEGIN { |
15 |
BEGIN { |
| 12 |
use_ok('C4::ILSDI::Services'); |
16 |
use_ok('C4::ILSDI::Services'); |
|
Lines 18-23
my $dbh = C4::Context->dbh;
Link Here
|
| 18 |
$dbh->{AutoCommit} = 0; |
22 |
$dbh->{AutoCommit} = 0; |
| 19 |
$dbh->{RaiseError} = 1; |
23 |
$dbh->{RaiseError} = 1; |
| 20 |
|
24 |
|
|
|
25 |
my $maxallowedreserves = 3; |
| 26 |
t::lib::Mocks::mock_preference('maxreserves', $maxallowedreserves); |
| 27 |
|
| 21 |
# Create patron |
28 |
# Create patron |
| 22 |
my %data = ( |
29 |
my %data = ( |
| 23 |
firstname => 'my firstname', |
30 |
firstname => 'my firstname', |
|
Lines 29-34
my %data = (
Link Here
|
| 29 |
password => 'ilsdi-password', |
36 |
password => 'ilsdi-password', |
| 30 |
); |
37 |
); |
| 31 |
|
38 |
|
|
|
39 |
my %data2 = ( |
| 40 |
firstname => 'Joe', |
| 41 |
surname => 'John', |
| 42 |
categorycode => 'UT', |
| 43 |
branchcode => 'UT', |
| 44 |
cardnumber => '99999', |
| 45 |
userid => 'jjohn', |
| 46 |
password => 'ilsdi-password', |
| 47 |
); |
| 48 |
|
| 32 |
# Crate patron category |
49 |
# Crate patron category |
| 33 |
unless ( GetBorrowercategory('UT') ) { |
50 |
unless ( GetBorrowercategory('UT') ) { |
| 34 |
$dbh->do("INSERT INTO categories |
51 |
$dbh->do("INSERT INTO categories |
|
Lines 44-51
unless ( GetBranchDetail('UT') ) {
Link Here
|
| 44 |
|
61 |
|
| 45 |
|
62 |
|
| 46 |
my $borrowernumber = AddMember(%data); |
63 |
my $borrowernumber = AddMember(%data); |
|
|
64 |
my $borrowernumber2 = AddMember(%data2); |
| 47 |
my $borrower = GetMember( borrowernumber => $borrowernumber ); |
65 |
my $borrower = GetMember( borrowernumber => $borrowernumber ); |
| 48 |
|
66 |
|
|
|
67 |
# Create biblio and item |
| 68 |
my %item_branch_infos = ( |
| 69 |
homebranch => 'UT', |
| 70 |
holdingbranch => 'UT', |
| 71 |
); |
| 72 |
|
| 73 |
my $record = MARC::Record->new; |
| 74 |
my $title = MARC::Field->new('200','','','a' => 'Hello world.'); |
| 75 |
$record->append_fields($title); |
| 76 |
|
| 77 |
my ($biblionumber) = AddBiblio($record, ''); |
| 78 |
my ($biblionumber2) = AddBiblio(MARC::Record->new, ''); |
| 79 |
my ($biblionumber3) = AddBiblio(MARC::Record->new, ''); |
| 80 |
my ($biblionumber4) = AddBiblio(MARC::Record->new, ''); |
| 81 |
my $itemnumber = AddItem({ barcode => '0101', %item_branch_infos }, $biblionumber); |
| 82 |
my $itemnumber2 = AddItem({ barcode => '0201', %item_branch_infos }, $biblionumber2); |
| 83 |
my $itemnumber3 = AddItem({ barcode => '0301', %item_branch_infos }, $biblionumber3); |
| 84 |
my $itemnumber4 = AddItem({ barcode => '0401', %item_branch_infos }, $biblionumber4); |
| 85 |
|
| 49 |
{ # AuthenticatePatron test |
86 |
{ # AuthenticatePatron test |
| 50 |
|
87 |
|
| 51 |
my $query = new CGI; |
88 |
my $query = new CGI; |
|
Lines 90-92
my $borrower = GetMember( borrowernumber => $borrowernumber );
Link Here
|
| 90 |
|
127 |
|
| 91 |
} |
128 |
} |
| 92 |
|
129 |
|
| 93 |
- |
130 |
{ # Add reserves tests |
|
|
131 |
|
| 132 |
my $query = new CGI; |
| 133 |
$query->param('patron_id',$borrowernumber); |
| 134 |
$query->param('bib_id', $biblionumber); |
| 135 |
$query->param('request_location','127.0.0.1'); |
| 136 |
my $reply = C4::ILSDI::Services::HoldTitle($query); |
| 137 |
is($reply->{'title'}, 'Hello world.'); |
| 138 |
is($reply->{'pickup_location'}, 'Unit test library', 'Hold title'); |
| 139 |
|
| 140 |
$reply = C4::ILSDI::Services::HoldTitle($query); |
| 141 |
is($reply->{'code'}, 'NotHoldable', 'Hold same title again - ILSDI'); |
| 142 |
|
| 143 |
$query->param('bib_id', $biblionumber2); |
| 144 |
$reply = C4::ILSDI::Services::HoldTitle($query); |
| 145 |
is($reply->{'pickup_location'}, 'Unit test library', 'Hold a second title - ILSDI'); |
| 146 |
|
| 147 |
$query->param('bib_id', $biblionumber3); |
| 148 |
$reply = C4::ILSDI::Services::HoldTitle($query); |
| 149 |
is($reply->{'pickup_location'}, 'Unit test library', 'Hold a third title - ILSDI'); |
| 150 |
|
| 151 |
$query->param('bib_id', $biblionumber4); |
| 152 |
$reply = C4::ILSDI::Services::HoldTitle($query); |
| 153 |
is($reply->{'code'}, 'NotHoldable', 'Hold a fourth title - ILSDI'); |
| 154 |
|
| 155 |
$query->param('bib_id', $biblionumber4); |
| 156 |
$query->param('item_id', $itemnumber4); |
| 157 |
$reply = C4::ILSDI::Services::HoldItem($query); |
| 158 |
is($reply->{'code'}, 'NotHoldable', 'Hold a fourth item - ILSDI'); |
| 159 |
|
| 160 |
$query->param('bib_id', $biblionumber); |
| 161 |
$query->param('patron_id',$borrowernumber2); |
| 162 |
$query->param('item_id', $itemnumber); |
| 163 |
$reply = C4::ILSDI::Services::HoldItem($query); |
| 164 |
is($reply->{'pickup_location'}, 'Unit test library', 'Joe John hold an item - ILSDI'); |
| 165 |
} |