Lines 8-14
use Koha::DateUtils qw( dt_from_string );
Link Here
|
8 |
use t::lib::Mocks; |
8 |
use t::lib::Mocks; |
9 |
use t::lib::TestBuilder; |
9 |
use t::lib::TestBuilder; |
10 |
|
10 |
|
11 |
use Test::More tests => 11; |
11 |
use Test::More tests => 13; |
12 |
|
12 |
|
13 |
use_ok('C4::Reserves', qw( ModReserve ModReserveAffect )); |
13 |
use_ok('C4::Reserves', qw( ModReserve ModReserveAffect )); |
14 |
|
14 |
|
Lines 63-73
my $biblio = $builder->build_sample_biblio;
Link Here
|
63 |
my $biblio2 = $builder->build_sample_biblio; |
63 |
my $biblio2 = $builder->build_sample_biblio; |
64 |
my $biblio3 = $builder->build_sample_biblio; |
64 |
my $biblio3 = $builder->build_sample_biblio; |
65 |
my $biblio4 = $builder->build_sample_biblio; |
65 |
my $biblio4 = $builder->build_sample_biblio; |
|
|
66 |
my $biblio5 = $builder->build_sample_biblio; |
67 |
my $biblio6 = $builder->build_sample_biblio; |
66 |
|
68 |
|
67 |
my $item1 = $builder->build_sample_item({biblionumber => $biblio->biblionumber}); |
69 |
my $item1 = $builder->build_sample_item({biblionumber => $biblio->biblionumber}); |
68 |
my $item2 = $builder->build_sample_item({biblionumber => $biblio2->biblionumber}); |
70 |
my $item2 = $builder->build_sample_item({biblionumber => $biblio2->biblionumber}); |
69 |
my $item3 = $builder->build_sample_item({biblionumber => $biblio3->biblionumber}); |
71 |
my $item3 = $builder->build_sample_item({biblionumber => $biblio3->biblionumber}); |
70 |
my $item4 = $builder->build_sample_item({biblionumber => $biblio4->biblionumber}); |
72 |
my $item4 = $builder->build_sample_item({biblionumber => $biblio4->biblionumber}); |
|
|
73 |
my $item5 = $builder->build_sample_item({biblionumber => $biblio5->biblionumber}); |
74 |
my $item6 = $builder->build_sample_item({biblionumber => $biblio6->biblionumber}); |
75 |
|
76 |
Koha::CirculationRules->set_rules({ |
77 |
categorycode => undef, |
78 |
itemtype => undef, |
79 |
branchcode => undef, |
80 |
rules => { |
81 |
holds_pickup_period => undef, |
82 |
} |
83 |
}); |
71 |
|
84 |
|
72 |
my $today = dt_from_string(); |
85 |
my $today = dt_from_string(); |
73 |
|
86 |
|
Lines 199-202
ModReserveAffect( $item4->itemnumber, $patron2->{borrowernumber}, 0, $reserve4->
Link Here
|
199 |
my $r4 = Koha::Holds->find($reserve4->{reserve_id}); |
212 |
my $r4 = Koha::Holds->find($reserve4->{reserve_id}); |
200 |
is($r4->expirationdate, $requested_expiredate->ymd, 'Requested expiration date should be kept' ); |
213 |
is($r4->expirationdate, $requested_expiredate->ymd, 'Requested expiration date should be kept' ); |
201 |
|
214 |
|
|
|
215 |
Koha::CirculationRules->set_rules({ |
216 |
categorycode => $patron1->{categorycode}, |
217 |
itemtype => undef, |
218 |
branchcode => undef, |
219 |
rules => { |
220 |
holds_pickup_period => '3', |
221 |
} |
222 |
}); |
223 |
t::lib::Mocks::mock_preference('ReservesMaxPickUpDelay', 7); |
224 |
|
225 |
my $reserve5_reservedate = $today->clone; |
226 |
my $reserve5_expirationdate = $reserve5_reservedate->add(days => 3); |
227 |
|
228 |
my $reserve5 = $builder->build({ |
229 |
source => 'Reserve', |
230 |
value => { |
231 |
borrowernumber => $patron1->{borrowernumber}, |
232 |
reservedate => $reserve5_reservedate->ymd, |
233 |
expirationdate => undef, |
234 |
biblionumber => $biblio5->biblionumber, |
235 |
branchcode => 'LIB2', |
236 |
priority => 1, |
237 |
found => '', |
238 |
}, |
239 |
}); |
240 |
|
241 |
ModReserveAffect( $item5->itemnumber, $patron1->{borrowernumber}); |
242 |
my $r5 = Koha::Holds->find($reserve5->{reserve_id}); |
243 |
|
244 |
is($r5->expirationdate, $reserve5_expirationdate->ymd, 'Expiration date should be set to today + 3 based on circulation rules' ); |
245 |
|
246 |
my $reserve6_reservedate = $today->clone; |
247 |
# add 3 days of pickup + 1 day of holiday |
248 |
my $reserve6_expirationdate = $reserve6_reservedate->add(days => 5); |
249 |
|
250 |
my $reserve6 = $builder->build({ |
251 |
source => 'Reserve', |
252 |
value => { |
253 |
borrowernumber => $patron1->{borrowernumber}, |
254 |
reservedate => $reserve6_reservedate->ymd, |
255 |
expirationdate => undef, |
256 |
biblionumber => $biblio6->biblionumber, |
257 |
branchcode => 'LIB1', |
258 |
priority => 1, |
259 |
found => '', |
260 |
}, |
261 |
}); |
262 |
|
263 |
ModReserveAffect( $item6->itemnumber, $patron1->{borrowernumber}); |
264 |
my $r6 = Koha::Holds->find($reserve6->{reserve_id}); |
265 |
|
266 |
is($r6->expirationdate, $reserve6_expirationdate->ymd, 'Expiration date should be set to today + 4 based on circulation rules and including a holiday' ); |
267 |
|
202 |
$schema->storage->txn_rollback; |
268 |
$schema->storage->txn_rollback; |
203 |
- |
|
|