|
Lines 1262-1270
subtest 'strings_map() tests' => sub {
Link Here
|
| 1262 |
$schema->txn_rollback; |
1262 |
$schema->txn_rollback; |
| 1263 |
}; |
1263 |
}; |
| 1264 |
|
1264 |
|
| 1265 |
subtest 'revert_waiting() tests' => sub { |
1265 |
subtest 'revert_found() tests' => sub { |
| 1266 |
|
1266 |
|
| 1267 |
plan tests => 3; |
1267 |
plan tests => 5; |
| 1268 |
|
1268 |
|
| 1269 |
subtest 'item-level holds tests' => sub { |
1269 |
subtest 'item-level holds tests' => sub { |
| 1270 |
|
1270 |
|
|
Lines 1318-1325
subtest 'revert_waiting() tests' => sub {
Link Here
|
| 1318 |
is( $hold->priority, 0, "'priority' set to 0" ); |
1318 |
is( $hold->priority, 0, "'priority' set to 0" ); |
| 1319 |
ok( $hold->is_waiting, 'Hold set to waiting' ); |
1319 |
ok( $hold->is_waiting, 'Hold set to waiting' ); |
| 1320 |
|
1320 |
|
| 1321 |
# Revert the waiting status |
1321 |
# Revert the found status |
| 1322 |
$hold->revert_waiting(); |
1322 |
$hold->revert_found(); |
| 1323 |
|
1323 |
|
| 1324 |
is( $hold->waitingdate, undef, "'waitingdate' reset" ); |
1324 |
is( $hold->waitingdate, undef, "'waitingdate' reset" ); |
| 1325 |
ok( !$hold->is_waiting, 'Hold no longer set to waiting' ); |
1325 |
ok( !$hold->is_waiting, 'Hold no longer set to waiting' ); |
|
Lines 1342-1361
subtest 'revert_waiting() tests' => sub {
Link Here
|
| 1342 |
|
1342 |
|
| 1343 |
$hold->set_waiting(); |
1343 |
$hold->set_waiting(); |
| 1344 |
|
1344 |
|
| 1345 |
# Revert the waiting status, RealTimeHoldsQueue => shouldn't add a test |
1345 |
# Revert the found status, RealTimeHoldsQueue => shouldn't add a test |
| 1346 |
$hold->revert_waiting(); |
1346 |
$hold->revert_found(); |
| 1347 |
|
1347 |
|
| 1348 |
my $log_count_after = |
1348 |
my $log_count_after = |
| 1349 |
Koha::ActionLogs->search( { module => 'HOLDS', action => 'MODIFY', object => $hold->reserve_id } )->count; |
1349 |
Koha::ActionLogs->search( { module => 'HOLDS', action => 'MODIFY', object => $hold->reserve_id } )->count; |
| 1350 |
is( $log_count, $log_count_after, "No logging is added for ->revert_waiting() when HoldsLog is disabled" ); |
1350 |
is( $log_count, $log_count_after, "No logging is added for ->revert_found() when HoldsLog is disabled" ); |
| 1351 |
|
1351 |
|
| 1352 |
# Set as 'processing' to test the exception behavior |
1352 |
# Set as regular hold (not found) to test the exception behavior |
| 1353 |
$hold->found('P'); |
1353 |
$hold->found(undef); |
| 1354 |
throws_ok { $hold->revert_waiting() } |
1354 |
throws_ok { $hold->revert_found() } |
| 1355 |
'Koha::Exceptions::InvalidStatus', |
1355 |
'Koha::Exceptions::InvalidStatus', |
| 1356 |
"Hold is not in 'waiting' status, exception thrown"; |
1356 |
"Hold is not in 'found' status, exception thrown"; |
| 1357 |
|
1357 |
|
| 1358 |
is( $@->invalid_status, 'hold_not_waiting', "'invalid_status' set the right value" ); |
1358 |
is( $@->invalid_status, 'hold_not_found', "'invalid_status' set the right value" ); |
| 1359 |
|
1359 |
|
| 1360 |
$schema->storage->txn_rollback; |
1360 |
$schema->storage->txn_rollback; |
| 1361 |
}; |
1361 |
}; |
|
Lines 1399-1406
subtest 'revert_waiting() tests' => sub {
Link Here
|
| 1399 |
is( $hold->priority, 0, "'priority' set to 0" ); |
1399 |
is( $hold->priority, 0, "'priority' set to 0" ); |
| 1400 |
ok( $hold->is_waiting, 'Hold set to waiting' ); |
1400 |
ok( $hold->is_waiting, 'Hold set to waiting' ); |
| 1401 |
|
1401 |
|
| 1402 |
# Revert the waiting status |
1402 |
# Revert the found status |
| 1403 |
$hold->revert_waiting(); |
1403 |
$hold->revert_found(); |
| 1404 |
|
1404 |
|
| 1405 |
is( $hold->waitingdate, undef, "'waitingdate' reset" ); |
1405 |
is( $hold->waitingdate, undef, "'waitingdate' reset" ); |
| 1406 |
ok( !$hold->is_waiting, 'Hold no longer set to waiting' ); |
1406 |
ok( !$hold->is_waiting, 'Hold no longer set to waiting' ); |
|
Lines 1478-1484
subtest 'revert_waiting() tests' => sub {
Link Here
|
| 1478 |
$hold->set_waiting()->discard_changes(); |
1478 |
$hold->set_waiting()->discard_changes(); |
| 1479 |
is( $hold->priority, 0, "'priority' set to 0" ); |
1479 |
is( $hold->priority, 0, "'priority' set to 0" ); |
| 1480 |
|
1480 |
|
| 1481 |
$hold->revert_waiting()->discard_changes(); |
1481 |
$hold->revert_found()->discard_changes(); |
| 1482 |
is( $hold->priority, 1, "'priority' set to 1" ); |
1482 |
is( $hold->priority, 1, "'priority' set to 1" ); |
| 1483 |
|
1483 |
|
| 1484 |
my $holds = $item->biblio->holds; |
1484 |
my $holds = $item->biblio->holds; |
|
Lines 1493-1496
subtest 'revert_waiting() tests' => sub {
Link Here
|
| 1493 |
|
1493 |
|
| 1494 |
$schema->storage->txn_rollback; |
1494 |
$schema->storage->txn_rollback; |
| 1495 |
}; |
1495 |
}; |
|
|
1496 |
|
| 1497 |
subtest 'in transit holds tests' => sub { |
| 1498 |
|
| 1499 |
plan tests => 8; |
| 1500 |
|
| 1501 |
$schema->storage->txn_begin; |
| 1502 |
|
| 1503 |
my $item = $builder->build_sample_item; |
| 1504 |
my $patron = $builder->build_object( |
| 1505 |
{ |
| 1506 |
class => 'Koha::Patrons', |
| 1507 |
value => { branchcode => $item->homebranch } |
| 1508 |
} |
| 1509 |
); |
| 1510 |
|
| 1511 |
# Create item-level hold |
| 1512 |
my $hold = Koha::Holds->find( |
| 1513 |
AddReserve( |
| 1514 |
{ |
| 1515 |
branchcode => $item->homebranch, |
| 1516 |
borrowernumber => $patron->borrowernumber, |
| 1517 |
biblionumber => $item->biblionumber, |
| 1518 |
priority => 1, |
| 1519 |
itemnumber => $item->itemnumber, |
| 1520 |
} |
| 1521 |
) |
| 1522 |
); |
| 1523 |
|
| 1524 |
# Mark it in transit |
| 1525 |
$hold->set_transfer(); |
| 1526 |
|
| 1527 |
is( $hold->priority, 0, "'priority' set to 0" ); |
| 1528 |
ok( $hold->is_in_transit, 'Hold set to in transit' ); |
| 1529 |
is( $hold->found, 'T', "'found' set to 'T'" ); |
| 1530 |
|
| 1531 |
# Revert the found status |
| 1532 |
$hold->revert_found(); |
| 1533 |
|
| 1534 |
ok( !$hold->is_in_transit, 'Hold no longer set to in transit' ); |
| 1535 |
ok( !$hold->is_found, 'Hold no longer has found status' ); |
| 1536 |
is( $hold->found, undef, "'found' reset to undef" ); |
| 1537 |
is( $hold->priority, 1, "'priority' set to 1" ); |
| 1538 |
is( |
| 1539 |
$hold->itemnumber, $item->itemnumber, |
| 1540 |
'Itemnumber should not be removed when the found status is reverted' |
| 1541 |
); |
| 1542 |
|
| 1543 |
$schema->storage->txn_rollback; |
| 1544 |
}; |
| 1545 |
|
| 1546 |
subtest 'in processing holds tests' => sub { |
| 1547 |
|
| 1548 |
plan tests => 8; |
| 1549 |
|
| 1550 |
$schema->storage->txn_begin; |
| 1551 |
|
| 1552 |
my $item = $builder->build_sample_item; |
| 1553 |
my $patron = $builder->build_object( |
| 1554 |
{ |
| 1555 |
class => 'Koha::Patrons', |
| 1556 |
value => { branchcode => $item->homebranch } |
| 1557 |
} |
| 1558 |
); |
| 1559 |
|
| 1560 |
# Create item-level hold |
| 1561 |
my $hold = Koha::Holds->find( |
| 1562 |
AddReserve( |
| 1563 |
{ |
| 1564 |
branchcode => $item->homebranch, |
| 1565 |
borrowernumber => $patron->borrowernumber, |
| 1566 |
biblionumber => $item->biblionumber, |
| 1567 |
priority => 1, |
| 1568 |
itemnumber => $item->itemnumber, |
| 1569 |
} |
| 1570 |
) |
| 1571 |
); |
| 1572 |
|
| 1573 |
# Mark it in processing |
| 1574 |
$hold->set_processing(); |
| 1575 |
|
| 1576 |
is( $hold->priority, 0, "'priority' set to 0" ); |
| 1577 |
ok( $hold->is_in_processing, 'Hold set to in processing' ); |
| 1578 |
is( $hold->found, 'P', "'found' set to 'P'" ); |
| 1579 |
|
| 1580 |
# Revert the found status |
| 1581 |
$hold->revert_found(); |
| 1582 |
|
| 1583 |
ok( !$hold->is_in_processing, 'Hold no longer set to in processing' ); |
| 1584 |
ok( !$hold->is_found, 'Hold no longer has found status' ); |
| 1585 |
is( $hold->found, undef, "'found' reset to undef" ); |
| 1586 |
is( $hold->priority, 1, "'priority' set to 1" ); |
| 1587 |
is( |
| 1588 |
$hold->itemnumber, $item->itemnumber, |
| 1589 |
'Itemnumber should not be removed when the found status is reverted' |
| 1590 |
); |
| 1591 |
|
| 1592 |
$schema->storage->txn_rollback; |
| 1593 |
}; |
| 1496 |
}; |
1594 |
}; |
| 1497 |
- |
|
|