|
Lines 20-26
Link Here
|
| 20 |
use Modern::Perl; |
20 |
use Modern::Perl; |
| 21 |
|
21 |
|
| 22 |
use Test::NoWarnings; |
22 |
use Test::NoWarnings; |
| 23 |
use Test::More tests => 17; |
23 |
use Test::More tests => 18; |
| 24 |
|
24 |
|
| 25 |
use Test::Exception; |
25 |
use Test::Exception; |
| 26 |
use Test::MockModule; |
26 |
use Test::MockModule; |
|
Lines 1494-1496
subtest 'revert_waiting() tests' => sub {
Link Here
|
| 1494 |
$schema->storage->txn_rollback; |
1494 |
$schema->storage->txn_rollback; |
| 1495 |
}; |
1495 |
}; |
| 1496 |
}; |
1496 |
}; |
| 1497 |
- |
1497 |
subtest 'move_hold() tests' => sub { |
|
|
1498 |
plan tests => 11; |
| 1499 |
$schema->storage->txn_begin; |
| 1500 |
|
| 1501 |
my $patron = Koha::Patron->new( |
| 1502 |
{ |
| 1503 |
surname => 'Luke', |
| 1504 |
categorycode => 'PT', |
| 1505 |
branchcode => 'CPL' |
| 1506 |
} |
| 1507 |
)->store; |
| 1508 |
|
| 1509 |
my $patron_2 = Koha::Patron->new( |
| 1510 |
{ |
| 1511 |
surname => 'Gass', |
| 1512 |
categorycode => 'PT', |
| 1513 |
branchcode => 'CPL' |
| 1514 |
} |
| 1515 |
)->store; |
| 1516 |
|
| 1517 |
my $patron_3 = Koha::Patron->new( |
| 1518 |
{ |
| 1519 |
surname => 'Test', |
| 1520 |
categorycode => 'PT', |
| 1521 |
branchcode => 'CPL' |
| 1522 |
} |
| 1523 |
)->store; |
| 1524 |
|
| 1525 |
my $patron_4 = Koha::Patron->new( |
| 1526 |
{ |
| 1527 |
surname => 'Guy', |
| 1528 |
categorycode => 'PT', |
| 1529 |
branchcode => 'CPL' |
| 1530 |
} |
| 1531 |
)->store; |
| 1532 |
|
| 1533 |
my $biblio1 = $builder->build_sample_biblio(); |
| 1534 |
my $item_1 = $builder->build_sample_item( { biblionumber => $biblio1->biblionumber } ); |
| 1535 |
|
| 1536 |
my $biblio2 = $builder->build_sample_biblio(); |
| 1537 |
my $item_2 = $builder->build_sample_item( { biblionumber => $biblio2->biblionumber } ); |
| 1538 |
|
| 1539 |
my $biblio3 = $builder->build_sample_biblio(); |
| 1540 |
my $item_3 = $builder->build_sample_item( { biblionumber => $biblio3->biblionumber } ); |
| 1541 |
|
| 1542 |
my $biblio4 = $builder->build_sample_biblio(); |
| 1543 |
my $item_4 = $builder->build_sample_item( { biblionumber => $biblio4->biblionumber } ); |
| 1544 |
|
| 1545 |
# Create an item level hold |
| 1546 |
my $hold = Koha::Hold->new( |
| 1547 |
{ |
| 1548 |
borrowernumber => $patron->borrowernumber, |
| 1549 |
biblionumber => $biblio1->biblionumber, |
| 1550 |
itemnumber => $item_1->itemnumber, |
| 1551 |
branchcode => 'CPL', |
| 1552 |
} |
| 1553 |
)->store; |
| 1554 |
|
| 1555 |
# Create a record level hold |
| 1556 |
my $hold_2 = Koha::Hold->new( |
| 1557 |
{ |
| 1558 |
borrowernumber => $patron->borrowernumber, |
| 1559 |
biblionumber => $biblio1->biblionumber, |
| 1560 |
itemnumber => undef, |
| 1561 |
branchcode => 'CPL', |
| 1562 |
} |
| 1563 |
)->store; |
| 1564 |
|
| 1565 |
# Move the hold from item 1 to item 2 |
| 1566 |
my $result = $hold->move_hold( { new_itemnumber => $item_2->itemnumber } ); |
| 1567 |
ok( $result->{success}, 'Hold successfully moved' ); |
| 1568 |
$hold->discard_changes(); |
| 1569 |
is( $hold->biblionumber, $biblio2->biblionumber, 'Biblionumber updated correctly' ); |
| 1570 |
is( $hold->itemnumber, $item_2->itemnumber, 'Itemnumber updated correctly' ); |
| 1571 |
is( $hold->priority, 1, "Hold priority is set to 1" ); |
| 1572 |
|
| 1573 |
my $logs = Koha::ActionLogs->search( |
| 1574 |
{ |
| 1575 |
action => 'MODIFY', |
| 1576 |
module => 'HOLDS', |
| 1577 |
object => $hold->id |
| 1578 |
} |
| 1579 |
); |
| 1580 |
|
| 1581 |
is( $logs->count, 0, 'HoldsLog disabled, no logs added' ); |
| 1582 |
|
| 1583 |
my $result_2 = $hold_2->move_hold( { new_biblionumber => $biblio3->biblionumber } ); |
| 1584 |
ok( $result_2->{success}, 'Hold successfully moved' ); |
| 1585 |
$hold_2->discard_changes(); |
| 1586 |
is( $hold_2->biblionumber, $biblio3->biblionumber, 'Biblionumber updated correctly' ); |
| 1587 |
is( $hold->priority, 1, "Hold priority is set to 1" ); |
| 1588 |
|
| 1589 |
# Create an item level hold |
| 1590 |
my $hold_3 = Koha::Hold->new( |
| 1591 |
{ |
| 1592 |
borrowernumber => $patron_3->borrowernumber, |
| 1593 |
biblionumber => $biblio4->biblionumber, |
| 1594 |
itemnumber => $item_4->itemnumber, |
| 1595 |
branchcode => 'CPL', |
| 1596 |
priority => 1, |
| 1597 |
} |
| 1598 |
)->store; |
| 1599 |
|
| 1600 |
# Create an item level hold |
| 1601 |
my $hold_4 = Koha::Hold->new( |
| 1602 |
{ |
| 1603 |
borrowernumber => $patron_2->borrowernumber, |
| 1604 |
biblionumber => $biblio4->biblionumber, |
| 1605 |
itemnumber => $item_4->itemnumber, |
| 1606 |
branchcode => 'CPL', |
| 1607 |
priority => 2, |
| 1608 |
} |
| 1609 |
)->store; |
| 1610 |
|
| 1611 |
# Create an item level hold |
| 1612 |
my $hold_5 = Koha::Hold->new( |
| 1613 |
{ |
| 1614 |
borrowernumber => $patron_4->borrowernumber, |
| 1615 |
biblionumber => $biblio4->biblionumber, |
| 1616 |
itemnumber => $item_4->itemnumber, |
| 1617 |
branchcode => 'CPL', |
| 1618 |
priority => 3, |
| 1619 |
} |
| 1620 |
)->store; |
| 1621 |
|
| 1622 |
#enable HoldsLog |
| 1623 |
t::lib::Mocks::mock_preference( 'HoldsLog', 1 ); |
| 1624 |
|
| 1625 |
my $result_3 = $hold_2->move_hold( { new_biblionumber => $biblio4->biblionumber } ); |
| 1626 |
ok( $result_3->{success}, 'Hold successfully moved' ); |
| 1627 |
$hold_2->discard_changes; |
| 1628 |
is( $hold_2->priority, 4, "Hold priority is set to 4" ); |
| 1629 |
|
| 1630 |
my $logs_2 = Koha::ActionLogs->search( |
| 1631 |
{ |
| 1632 |
action => 'MODIFY', |
| 1633 |
module => 'HOLDS', |
| 1634 |
object => $hold_2->id |
| 1635 |
} |
| 1636 |
); |
| 1637 |
|
| 1638 |
is( $logs_2->count, 1, 'Hold modification was logged' ); |
| 1639 |
|
| 1640 |
#disable HoldsLog |
| 1641 |
t::lib::Mocks::mock_preference( 'HoldsLog', 1 ); |
| 1642 |
|
| 1643 |
$schema->storage->txn_rollback; |
| 1644 |
}; |