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