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

Return to bug 31698