Lines 297-337
subtest 'LookupPatron test' => sub {
Link Here
|
297 |
$schema->storage->txn_rollback; |
297 |
$schema->storage->txn_rollback; |
298 |
}; |
298 |
}; |
299 |
|
299 |
|
300 |
# This is a stub, as it merely is for triggering the GetMarcBiblio call. |
300 |
subtest 'Holds test' => sub { |
301 |
subtest 'GetRecords' => sub { |
|
|
302 |
|
301 |
|
303 |
plan tests => 1; |
302 |
plan tests => 3; |
304 |
|
303 |
|
305 |
$schema->storage->txn_begin; |
304 |
$schema->storage->txn_begin; |
306 |
|
305 |
|
|
|
306 |
t::lib::Mocks::mock_preference( 'AllowHoldsOnDamagedItems', 0 ); |
307 |
|
308 |
my $patron = $builder->build({ |
309 |
source => 'Borrower', |
310 |
}); |
311 |
|
307 |
my $biblio = $builder->build({ |
312 |
my $biblio = $builder->build({ |
308 |
source => 'Biblio', |
313 |
source => 'Biblio', |
309 |
value => { |
314 |
}); |
310 |
title => 'Title 1', }, |
315 |
|
|
|
316 |
my $biblioitems = $builder->build({ |
317 |
source => 'Biblioitem', |
318 |
value => { |
319 |
biblionumber => $biblio->{biblionumber}, |
320 |
} |
311 |
}); |
321 |
}); |
312 |
|
322 |
|
313 |
my $item = $builder->build({ |
323 |
my $item = $builder->build({ |
314 |
source => 'Item', |
324 |
source => 'Item', |
315 |
value => { |
325 |
value => { |
316 |
biblionumber => $biblio->{biblionumber}, |
326 |
biblionumber => $biblio->{biblionumber}, |
317 |
}, |
327 |
damaged => 1 |
|
|
328 |
} |
318 |
}); |
329 |
}); |
319 |
|
330 |
|
320 |
my $biblioitem = $builder->build({ |
331 |
my $query = new CGI; |
321 |
source => 'Biblioitem', |
332 |
$query->param( 'patron_id', $patron->{borrowernumber}); |
322 |
value => { |
333 |
$query->param( 'bib_id', $biblio->{biblionumber}); |
|
|
334 |
|
335 |
my $reply = C4::ILSDI::Services::HoldTitle( $query ); |
336 |
is( $reply->{code}, 'damaged', "Item damaged" ); |
337 |
|
338 |
my $item_o = Koha::Items->find($item->{itemnumber}); |
339 |
$item_o->damaged(0)->store; |
340 |
|
341 |
my $hold = $builder->build({ |
342 |
source => 'Reserve', |
343 |
value => { |
344 |
borrowernumber => $patron->{borrowernumber}, |
323 |
biblionumber => $biblio->{biblionumber}, |
345 |
biblionumber => $biblio->{biblionumber}, |
324 |
itemnumber => $item->{itemnumber}, |
346 |
itemnumber => $item->{itemnumber} |
325 |
}, |
347 |
} |
|
|
348 |
}); |
349 |
|
350 |
$reply = C4::ILSDI::Services::HoldTitle( $query ); |
351 |
is( $reply->{code}, 'itemAlreadyOnHold', "Item already on hold" ); |
352 |
|
353 |
my $biblio2 = $builder->build({ |
354 |
source => 'Biblio', |
355 |
}); |
356 |
|
357 |
my $biblioitems2 = $builder->build({ |
358 |
source => 'Biblioitem', |
359 |
value => { |
360 |
biblionumber => $biblio2->{biblionumber}, |
361 |
} |
326 |
}); |
362 |
}); |
327 |
|
363 |
|
328 |
my $query = CGI->new({ |
364 |
my $item2 = $builder->build({ |
329 |
'schema' => 'MARCXML', |
365 |
source => 'Item', |
330 |
'id' => [ $biblio->{biblionumber} ] |
366 |
value => { |
|
|
367 |
biblionumber => $biblio2->{biblionumber}, |
368 |
damaged => 0 |
369 |
} |
370 |
}); |
371 |
|
372 |
t::lib::Mocks::mock_preference( 'ReservesControlBranch', 'PatronLibrary' ); |
373 |
my $issuingrule = $builder->build({ |
374 |
source => 'Issuingrule', |
375 |
value => { |
376 |
categorycode => $patron->{categorycode}, |
377 |
itemtype => $item2->{itype}, |
378 |
branchcode => $patron->{branchcode}, |
379 |
reservesallowed => 0, |
380 |
} |
331 |
}); |
381 |
}); |
332 |
|
382 |
|
333 |
my $result = C4::ILSDI::Services::GetRecords($query); |
383 |
$query = new CGI; |
334 |
ok($result,'There is a result'); |
384 |
$query->param( 'patron_id', $patron->{borrowernumber}); |
|
|
385 |
$query->param( 'bib_id', $biblio2->{biblionumber}); |
386 |
$query->param( 'item_id', $item2->{itemnumber}); |
387 |
|
388 |
$reply = C4::ILSDI::Services::HoldItem( $query ); |
389 |
is( $reply->{code}, 'tooManyReserves', "Too many reserves" ); |
335 |
|
390 |
|
336 |
$schema->storage->txn_rollback; |
391 |
$schema->storage->txn_rollback; |
337 |
} |
392 |
}; |
338 |
- |
|
|