|
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 1673-1675
subtest 'revert_found() tests' => sub {
Link Here
|
| 1673 |
$schema->storage->txn_rollback; |
1673 |
$schema->storage->txn_rollback; |
| 1674 |
}; |
1674 |
}; |
| 1675 |
}; |
1675 |
}; |
| 1676 |
- |
1676 |
subtest 'move_hold() tests' => sub { |
|
|
1677 |
plan tests => 11; |
| 1678 |
$schema->storage->txn_begin; |
| 1679 |
|
| 1680 |
my $patron = Koha::Patron->new( |
| 1681 |
{ |
| 1682 |
surname => 'Luke', |
| 1683 |
categorycode => 'PT', |
| 1684 |
branchcode => 'CPL' |
| 1685 |
} |
| 1686 |
)->store; |
| 1687 |
|
| 1688 |
my $patron_2 = Koha::Patron->new( |
| 1689 |
{ |
| 1690 |
surname => 'Gass', |
| 1691 |
categorycode => 'PT', |
| 1692 |
branchcode => 'CPL' |
| 1693 |
} |
| 1694 |
)->store; |
| 1695 |
|
| 1696 |
my $patron_3 = Koha::Patron->new( |
| 1697 |
{ |
| 1698 |
surname => 'Test', |
| 1699 |
categorycode => 'PT', |
| 1700 |
branchcode => 'CPL' |
| 1701 |
} |
| 1702 |
)->store; |
| 1703 |
|
| 1704 |
my $patron_4 = Koha::Patron->new( |
| 1705 |
{ |
| 1706 |
surname => 'Guy', |
| 1707 |
categorycode => 'PT', |
| 1708 |
branchcode => 'CPL' |
| 1709 |
} |
| 1710 |
)->store; |
| 1711 |
|
| 1712 |
my $biblio1 = $builder->build_sample_biblio(); |
| 1713 |
my $item_1 = $builder->build_sample_item( { biblionumber => $biblio1->biblionumber } ); |
| 1714 |
|
| 1715 |
my $biblio2 = $builder->build_sample_biblio(); |
| 1716 |
my $item_2 = $builder->build_sample_item( { biblionumber => $biblio2->biblionumber } ); |
| 1717 |
|
| 1718 |
my $biblio3 = $builder->build_sample_biblio(); |
| 1719 |
my $item_3 = $builder->build_sample_item( { biblionumber => $biblio3->biblionumber } ); |
| 1720 |
|
| 1721 |
my $biblio4 = $builder->build_sample_biblio(); |
| 1722 |
my $item_4 = $builder->build_sample_item( { biblionumber => $biblio4->biblionumber } ); |
| 1723 |
|
| 1724 |
# Create an item level hold |
| 1725 |
my $hold = Koha::Hold->new( |
| 1726 |
{ |
| 1727 |
borrowernumber => $patron->borrowernumber, |
| 1728 |
biblionumber => $biblio1->biblionumber, |
| 1729 |
itemnumber => $item_1->itemnumber, |
| 1730 |
branchcode => 'CPL', |
| 1731 |
} |
| 1732 |
)->store; |
| 1733 |
|
| 1734 |
# Create a record level hold |
| 1735 |
my $hold_2 = Koha::Hold->new( |
| 1736 |
{ |
| 1737 |
borrowernumber => $patron->borrowernumber, |
| 1738 |
biblionumber => $biblio1->biblionumber, |
| 1739 |
itemnumber => undef, |
| 1740 |
branchcode => 'CPL', |
| 1741 |
} |
| 1742 |
)->store; |
| 1743 |
|
| 1744 |
# Move the hold from item 1 to item 2 |
| 1745 |
my $result = $hold->move_hold( { new_itemnumber => $item_2->itemnumber } ); |
| 1746 |
ok( $result->{success}, 'Hold successfully moved' ); |
| 1747 |
$hold->discard_changes(); |
| 1748 |
is( $hold->biblionumber, $biblio2->biblionumber, 'Biblionumber updated correctly' ); |
| 1749 |
is( $hold->itemnumber, $item_2->itemnumber, 'Itemnumber updated correctly' ); |
| 1750 |
is( $hold->priority, 1, "Hold priority is set to 1" ); |
| 1751 |
|
| 1752 |
my $logs = Koha::ActionLogs->search( |
| 1753 |
{ |
| 1754 |
action => 'MODIFY', |
| 1755 |
module => 'HOLDS', |
| 1756 |
object => $hold->id |
| 1757 |
} |
| 1758 |
); |
| 1759 |
|
| 1760 |
is( $logs->count, 0, 'HoldsLog disabled, no logs added' ); |
| 1761 |
|
| 1762 |
my $result_2 = $hold_2->move_hold( { new_biblionumber => $biblio3->biblionumber } ); |
| 1763 |
ok( $result_2->{success}, 'Hold successfully moved' ); |
| 1764 |
$hold_2->discard_changes(); |
| 1765 |
is( $hold_2->biblionumber, $biblio3->biblionumber, 'Biblionumber updated correctly' ); |
| 1766 |
is( $hold->priority, 1, "Hold priority is set to 1" ); |
| 1767 |
|
| 1768 |
# Create an item level hold |
| 1769 |
my $hold_3 = Koha::Hold->new( |
| 1770 |
{ |
| 1771 |
borrowernumber => $patron_3->borrowernumber, |
| 1772 |
biblionumber => $biblio4->biblionumber, |
| 1773 |
itemnumber => $item_4->itemnumber, |
| 1774 |
branchcode => 'CPL', |
| 1775 |
priority => 1, |
| 1776 |
} |
| 1777 |
)->store; |
| 1778 |
|
| 1779 |
# Create an item level hold |
| 1780 |
my $hold_4 = Koha::Hold->new( |
| 1781 |
{ |
| 1782 |
borrowernumber => $patron_2->borrowernumber, |
| 1783 |
biblionumber => $biblio4->biblionumber, |
| 1784 |
itemnumber => $item_4->itemnumber, |
| 1785 |
branchcode => 'CPL', |
| 1786 |
priority => 2, |
| 1787 |
} |
| 1788 |
)->store; |
| 1789 |
|
| 1790 |
# Create an item level hold |
| 1791 |
my $hold_5 = Koha::Hold->new( |
| 1792 |
{ |
| 1793 |
borrowernumber => $patron_4->borrowernumber, |
| 1794 |
biblionumber => $biblio4->biblionumber, |
| 1795 |
itemnumber => $item_4->itemnumber, |
| 1796 |
branchcode => 'CPL', |
| 1797 |
priority => 3, |
| 1798 |
} |
| 1799 |
)->store; |
| 1800 |
|
| 1801 |
#enable HoldsLog |
| 1802 |
t::lib::Mocks::mock_preference( 'HoldsLog', 1 ); |
| 1803 |
|
| 1804 |
my $result_3 = $hold_2->move_hold( { new_biblionumber => $biblio4->biblionumber } ); |
| 1805 |
ok( $result_3->{success}, 'Hold successfully moved' ); |
| 1806 |
$hold_2->discard_changes; |
| 1807 |
is( $hold_2->priority, 4, "Hold priority is set to 4" ); |
| 1808 |
|
| 1809 |
my $logs_2 = Koha::ActionLogs->search( |
| 1810 |
{ |
| 1811 |
action => 'MODIFY', |
| 1812 |
module => 'HOLDS', |
| 1813 |
object => $hold_2->id |
| 1814 |
} |
| 1815 |
); |
| 1816 |
|
| 1817 |
is( $logs_2->count, 1, 'Hold modification was logged' ); |
| 1818 |
|
| 1819 |
#disable HoldsLog |
| 1820 |
t::lib::Mocks::mock_preference( 'HoldsLog', 1 ); |
| 1821 |
|
| 1822 |
$schema->storage->txn_rollback; |
| 1823 |
}; |