View | Details | Raw Unified | Return to bug 31698
Collapse All | Expand All

(-)a/t/db_dependent/Koha/Hold.t (-2 / +149 lines)
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
};

Return to bug 31698