|
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 |
- |
|
|