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