View | Details | Raw Unified | Return to bug 10697
Collapse All | Expand All

(-)a/t/db_dependent/Reserves.t (-5 / +111 lines)
Lines 2-8 Link Here
2
2
3
use Modern::Perl;
3
use Modern::Perl;
4
4
5
use Test::More tests => 4;
5
use Test::More tests => 14;
6
use MARC::Record;
6
use MARC::Record;
7
7
8
use C4::Branch;
8
use C4::Branch;
Lines 69-78 AddReserve($branch, $borrowernumber, $biblionumber, Link Here
69
69
70
my ($status, $reserve, $all_reserves) = CheckReserves($itemnumber, $barcode);
70
my ($status, $reserve, $all_reserves) = CheckReserves($itemnumber, $barcode);
71
71
72
is($status, "Reserved", "CheckReserves Test 1");
72
is($status, "Reserved", "CheckReserves Test 1 - Reserved");
73
73
74
($status, $reserve, $all_reserves) = CheckReserves($itemnumber);
74
($status, $reserve, $all_reserves) = CheckReserves($itemnumber);
75
is($status, "Reserved", "CheckReserves Test 2");
75
is($status, "Reserved", "CheckReserves Test 2 - Reserved");
76
76
77
($status, $reserve, $all_reserves) = CheckReserves(undef, $barcode);
77
($status, $reserve, $all_reserves) = CheckReserves(undef, $barcode);
78
is($status, "Reserved", "CheckReserves Test 3");
78
is($status, "Reserved", "CheckReserves Test 3 - Reserved");
79
80
81
# Adding some more unit tests for CheckReserves
82
83
# Prepare bibliographic record and item
84
diag("Single item");
85
my $bib2 = MARC::Record->new();
86
$bib2->append_fields(
87
    MARC::Field->new('100', ' ', ' ', a => 'Anonymous'),
88
    MARC::Field->new('245', ' ', ' ', a => 'Some random title'),
89
);
90
my ($bibnum2, $bibitemnum2, $title2);
91
($bibnum2, $title2, $bibitemnum2) = AddBiblio($bib2, '');
92
# Helper item for that biblio.
93
my ($item_bibnum2, $item_bibitemnum2, $itemnumber2) = AddItem({ homebranch => 'CPL', holdingbranch => 'CPL' } , $bibnum2);
94
95
# Modify item; setting barcode.
96
ModItem({ barcode => '97532' }, $bibnum2, $itemnumber2);
97
98
99
diag("- No existing holds");
100
($status, $reserve, $all_reserves) = CheckReserves($itemnumber2);
101
is($status, '', "No holds for this record");
102
103
104
diag("- Item level holds");
105
$checkitem = $itemnumber2;
106
$biblionumber = $bibnum2;
107
AddReserve ($branch, $borrowernumber, $biblionumber,
108
        $constraint, $bibitems,  $priority, $resdate, $expdate, $notes,
109
        $title, $checkitem, $found);
110
        
111
($status, $reserve, $all_reserves) = CheckReserves($itemnumber2);
112
is($status, "Reserved", "Reserved - item level hold, still on shelf");
113
114
# Hold is picked and set to waiting
115
my $reserve_id  = C4::Reserves::GetReserveId({ borrowernumber => $borrowernumber, itemnumber => $itemnumber2 });
116
ModReserveAffect($itemnumber2,$borrowernumber,'');
117
118
($status, $reserve, $all_reserves) = CheckReserves($itemnumber2);
119
is($status, "Waiting", "Waiting - item level hold, ready for pick-up");
120
121
# Cancel item level hold
122
$reserve_id = C4::Reserves::GetReserveId({ biblionumber => $bibnum2, borrowernumber => $borrowernumber});
123
CancelReserve({ reserve_id => $reserve_id });
124
125
126
diag("- Title level holds");
127
$checkitem = $itemnumber2;
128
$biblionumber = $bibnum2;
129
AddReserve ($branch, $borrowernumber, $biblionumber,
130
        $constraint, $bibitems,  $priority, $resdate, $expdate, $notes,
131
        $title, undef, $found);
132
133
($status, $reserve, $all_reserves) = CheckReserves($itemnumber2);
134
is($status,"Reserved", "Reserved - title level hold, still on shelf");
135
136
# Hold is pulled and set to waiting, itemnumber is set
137
ModReserveAffect($itemnumber2,$borrowernumber,'');
138
139
($status, $reserve, $all_reserves) = CheckReserves($itemnumber2);
140
is($status,"Waiting", "Waiting - title level hold is ready for pick-up");
141
142
# Cancel hold
143
$reserve_id = C4::Reserves::GetReserveId({ biblionumber => $bibnum2, borrowernumber => $borrowernumber});
144
CancelReserve({ reserve_id => $reserve_id });
145
146
($status, $reserve, $all_reserves) = CheckReserves($itemnumber2);
147
is($status, '', "Hold cancelled - no holds for this record");
148
149
150
diag("Multiple items");
151
my ($item_bibnum3, $item_bibitemnum3, $itemnumber3) = AddItem({ homebranch => 'CPL', holdingbranch => 'CPL' } , $bibnum2);
152
# Modify item; setting barcode.
153
ModItem({ barcode => '97533' }, $bibnum2, $itemnumber3);
154
155
diag("- Item level holds");
156
# Add item level hold on first item
157
AddReserve ($branch, $borrowernumber, $biblionumber,
158
        $constraint, $bibitems,  $priority, $resdate, $expdate, $notes,
159
        $title, $checkitem, $found);
160
161
# Check first item
162
($status, $reserve, $all_reserves) = CheckReserves($itemnumber2);
163
is($status, "Reserved", "Reserved - item level hold on this item"); 
164
165
# Check second item
166
($status, $reserve, $all_reserves) = CheckReserves($itemnumber3);
167
is($status, '', "No item level hold on this item");
168
169
# Cancel item level hold
170
$reserve_id = C4::Reserves::GetReserveId({ biblionumber => $bibnum2, borrowernumber => $borrowernumber});
171
CancelReserve({ reserve_id => $reserve_id });
172
173
diag("- Title level holds");
174
# Add title level hold
175
AddReserve ($branch, $borrowernumber, $biblionumber,
176
        $constraint, $bibitems,  $priority, $resdate, $expdate, $notes,
177
        $title, undef, $found);
178
179
($status, $reserve, $all_reserves) = CheckReserves($itemnumber2);
180
is($status, "Reserved", "Reserved - first item can fill title level hold"); 
181
182
($status, $reserve, $all_reserves) = CheckReserves($itemnumber2);
183
is($status, "Reserved", "Reserved - second item can also fill title level hold");
184
185
79
- 

Return to bug 10697