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

(-)a/t/db_dependent/Koha/Hold.t (-2 / +150 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 => 16;
23
use Test::More tests => 17;
24
24
25
use Test::Exception;
25
use Test::Exception;
26
use Test::MockModule;
26
use Test::MockModule;
Lines 1259-1261 subtest 'strings_map() tests' => sub { Link Here
1259
1259
1260
    $schema->txn_rollback;
1260
    $schema->txn_rollback;
1261
};
1261
};
1262
- 
1262
1263
subtest 'move_hold() tests' => sub {
1264
    plan tests => 11;
1265
    $schema->storage->txn_begin;
1266
1267
    my $patron = Koha::Patron->new(
1268
        {
1269
            surname      => 'Luke',
1270
            categorycode => 'PT',
1271
            branchcode   => 'CPL'
1272
        }
1273
    )->store;
1274
1275
    my $patron_2 = Koha::Patron->new(
1276
        {
1277
            surname      => 'Gass',
1278
            categorycode => 'PT',
1279
            branchcode   => 'CPL'
1280
        }
1281
    )->store;
1282
1283
    my $patron_3 = Koha::Patron->new(
1284
        {
1285
            surname      => 'Test',
1286
            categorycode => 'PT',
1287
            branchcode   => 'CPL'
1288
        }
1289
    )->store;
1290
1291
    my $patron_4 = Koha::Patron->new(
1292
        {
1293
            surname      => 'Guy',
1294
            categorycode => 'PT',
1295
            branchcode   => 'CPL'
1296
        }
1297
    )->store;
1298
1299
    my $biblio1 = $builder->build_sample_biblio();
1300
    my $item_1  = $builder->build_sample_item( { biblionumber => $biblio1->biblionumber } );
1301
1302
    my $biblio2 = $builder->build_sample_biblio();
1303
    my $item_2  = $builder->build_sample_item( { biblionumber => $biblio2->biblionumber } );
1304
1305
    my $biblio3 = $builder->build_sample_biblio();
1306
    my $item_3  = $builder->build_sample_item( { biblionumber => $biblio3->biblionumber } );
1307
1308
    my $biblio4 = $builder->build_sample_biblio();
1309
    my $item_4  = $builder->build_sample_item( { biblionumber => $biblio4->biblionumber } );
1310
1311
    # Create an item level hold
1312
    my $hold = Koha::Hold->new(
1313
        {
1314
            borrowernumber => $patron->borrowernumber,
1315
            biblionumber   => $biblio1->biblionumber,
1316
            itemnumber     => $item_1->itemnumber,
1317
            branchcode     => 'CPL',
1318
        }
1319
    )->store;
1320
1321
    # Create a record level hold
1322
    my $hold_2 = Koha::Hold->new(
1323
        {
1324
            borrowernumber => $patron->borrowernumber,
1325
            biblionumber   => $biblio1->biblionumber,
1326
            itemnumber     => undef,
1327
            branchcode     => 'CPL',
1328
        }
1329
    )->store;
1330
1331
    # Move the hold from item 1 to item 2
1332
    my $result = $hold->move_hold( { new_itemnumber => $item_2->itemnumber } );
1333
    ok( $result->{success}, 'Hold successfully moved' );
1334
    $hold->discard_changes();
1335
    is( $hold->biblionumber, $biblio2->biblionumber, 'Biblionumber updated correctly' );
1336
    is( $hold->itemnumber,   $item_2->itemnumber,    'Itemnumber updated correctly' );
1337
    is( $hold->priority,     1,                      "Hold priority is set to 1" );
1338
1339
    my $logs = Koha::ActionLogs->search(
1340
        {
1341
            action => 'MODIFY',
1342
            module => 'HOLDS',
1343
            object => $hold->id
1344
        }
1345
    );
1346
1347
    is( $logs->count, 0, 'HoldsLog disabled, no logs added' );
1348
1349
    my $result_2 = $hold_2->move_hold( { new_biblionumber => $biblio3->biblionumber } );
1350
    ok( $result_2->{success}, 'Hold successfully moved' );
1351
    $hold_2->discard_changes();
1352
    is( $hold_2->biblionumber, $biblio3->biblionumber, 'Biblionumber updated correctly' );
1353
    is( $hold->priority,       1,                      "Hold priority is set to 1" );
1354
1355
    # Create an item level hold
1356
    my $hold_3 = Koha::Hold->new(
1357
        {
1358
            borrowernumber => $patron_3->borrowernumber,
1359
            biblionumber   => $biblio4->biblionumber,
1360
            itemnumber     => $item_4->itemnumber,
1361
            branchcode     => 'CPL',
1362
            priority       => 1,
1363
        }
1364
    )->store;
1365
1366
    # Create an item level hold
1367
    my $hold_4 = Koha::Hold->new(
1368
        {
1369
            borrowernumber => $patron_2->borrowernumber,
1370
            biblionumber   => $biblio4->biblionumber,
1371
            itemnumber     => $item_4->itemnumber,
1372
            branchcode     => 'CPL',
1373
            priority       => 2,
1374
        }
1375
    )->store;
1376
1377
    # Create an item level hold
1378
    my $hold_5 = Koha::Hold->new(
1379
        {
1380
            borrowernumber => $patron_4->borrowernumber,
1381
            biblionumber   => $biblio4->biblionumber,
1382
            itemnumber     => $item_4->itemnumber,
1383
            branchcode     => 'CPL',
1384
            priority       => 3,
1385
        }
1386
    )->store;
1387
1388
    #enable HoldsLog
1389
    t::lib::Mocks::mock_preference( 'HoldsLog', 1 );
1390
1391
    my $result_3 = $hold_2->move_hold( { new_biblionumber => $biblio4->biblionumber } );
1392
    ok( $result_3->{success}, 'Hold successfully moved' );
1393
    $hold_2->discard_changes;
1394
    is( $hold_2->priority, 4, "Hold priority is set to 4" );
1395
1396
    my $logs_2 = Koha::ActionLogs->search(
1397
        {
1398
            action => 'MODIFY',
1399
            module => 'HOLDS',
1400
            object => $hold_2->id
1401
        }
1402
    );
1403
1404
    is( $logs_2->count, 1, 'Hold modification was logged' );
1405
1406
    #disable HoldsLog
1407
    t::lib::Mocks::mock_preference( 'HoldsLog', 1 );
1408
1409
    $schema->storage->txn_rollback;
1410
};

Return to bug 31698