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 => 15;
23
use Test::More tests => 16;
24
24
25
use Test::Exception;
25
use Test::Exception;
26
use Test::MockModule;
26
use Test::MockModule;
Lines 1161-1163 subtest 'change_type() tests' => sub { Link Here
1161
1161
1162
    $schema->storage->txn_rollback;
1162
    $schema->storage->txn_rollback;
1163
};
1163
};
1164
- 
1164
1165
subtest 'move_hold() tests' => sub {
1166
    plan tests => 11;
1167
    $schema->storage->txn_begin;
1168
1169
    my $patron = Koha::Patron->new(
1170
        {
1171
            surname      => 'Luke',
1172
            categorycode => 'PT',
1173
            branchcode   => 'CPL'
1174
        }
1175
    )->store;
1176
1177
    my $patron_2 = Koha::Patron->new(
1178
        {
1179
            surname      => 'Gass',
1180
            categorycode => 'PT',
1181
            branchcode   => 'CPL'
1182
        }
1183
    )->store;
1184
1185
    my $patron_3 = Koha::Patron->new(
1186
        {
1187
            surname      => 'Test',
1188
            categorycode => 'PT',
1189
            branchcode   => 'CPL'
1190
        }
1191
    )->store;
1192
1193
    my $patron_4 = Koha::Patron->new(
1194
        {
1195
            surname      => 'Guy',
1196
            categorycode => 'PT',
1197
            branchcode   => 'CPL'
1198
        }
1199
    )->store;
1200
1201
    my $biblio1 = $builder->build_sample_biblio();
1202
    my $item_1  = $builder->build_sample_item( { biblionumber => $biblio1->biblionumber } );
1203
1204
    my $biblio2 = $builder->build_sample_biblio();
1205
    my $item_2  = $builder->build_sample_item( { biblionumber => $biblio2->biblionumber } );
1206
1207
    my $biblio3 = $builder->build_sample_biblio();
1208
    my $item_3  = $builder->build_sample_item( { biblionumber => $biblio3->biblionumber } );
1209
1210
    my $biblio4 = $builder->build_sample_biblio();
1211
    my $item_4  = $builder->build_sample_item( { biblionumber => $biblio4->biblionumber } );
1212
1213
    # Create an item level hold
1214
    my $hold = Koha::Hold->new(
1215
        {
1216
            borrowernumber => $patron->borrowernumber,
1217
            biblionumber   => $biblio1->biblionumber,
1218
            itemnumber     => $item_1->itemnumber,
1219
            branchcode     => 'CPL',
1220
        }
1221
    )->store;
1222
1223
    # Create a record level hold
1224
    my $hold_2 = Koha::Hold->new(
1225
        {
1226
            borrowernumber => $patron->borrowernumber,
1227
            biblionumber   => $biblio1->biblionumber,
1228
            itemnumber     => undef,
1229
            branchcode     => 'CPL',
1230
        }
1231
    )->store;
1232
1233
    # Move the hold from item 1 to item 2
1234
    my $result = $hold->move_hold( { new_itemnumber => $item_2->itemnumber } );
1235
    ok( $result->{success}, 'Hold successfully moved' );
1236
    $hold->discard_changes();
1237
    is( $hold->biblionumber, $biblio2->biblionumber, 'Biblionumber updated correctly' );
1238
    is( $hold->itemnumber,   $item_2->itemnumber,    'Itemnumber updated correctly' );
1239
    is( $hold->priority,     1,                      "Hold priority is set to 1" );
1240
1241
    my $logs = Koha::ActionLogs->search(
1242
        {
1243
            action => 'MODIFY',
1244
            module => 'HOLDS',
1245
            object => $hold->id
1246
        }
1247
    );
1248
1249
    is( $logs->count, 0, 'HoldsLog disabled, no logs added' );
1250
1251
    my $result_2 = $hold_2->move_hold( { new_biblionumber => $biblio3->biblionumber } );
1252
    ok( $result_2->{success}, 'Hold successfully moved' );
1253
    $hold_2->discard_changes();
1254
    is( $hold_2->biblionumber, $biblio3->biblionumber, 'Biblionumber updated correctly' );
1255
    is( $hold->priority,       1,                      "Hold priority is set to 1" );
1256
1257
    # Create an item level hold
1258
    my $hold_3 = Koha::Hold->new(
1259
        {
1260
            borrowernumber => $patron_3->borrowernumber,
1261
            biblionumber   => $biblio4->biblionumber,
1262
            itemnumber     => $item_4->itemnumber,
1263
            branchcode     => 'CPL',
1264
            priority       => 1,
1265
        }
1266
    )->store;
1267
1268
    # Create an item level hold
1269
    my $hold_4 = Koha::Hold->new(
1270
        {
1271
            borrowernumber => $patron_2->borrowernumber,
1272
            biblionumber   => $biblio4->biblionumber,
1273
            itemnumber     => $item_4->itemnumber,
1274
            branchcode     => 'CPL',
1275
            priority       => 2,
1276
        }
1277
    )->store;
1278
1279
    # Create an item level hold
1280
    my $hold_5 = Koha::Hold->new(
1281
        {
1282
            borrowernumber => $patron_4->borrowernumber,
1283
            biblionumber   => $biblio4->biblionumber,
1284
            itemnumber     => $item_4->itemnumber,
1285
            branchcode     => 'CPL',
1286
            priority       => 3,
1287
        }
1288
    )->store;
1289
1290
    #enable HoldsLog
1291
    t::lib::Mocks::mock_preference( 'HoldsLog', 1 );
1292
1293
    my $result_3 = $hold_2->move_hold( { new_biblionumber => $biblio4->biblionumber } );
1294
    ok( $result_3->{success}, 'Hold successfully moved' );
1295
    $hold_2->discard_changes;
1296
    is( $hold_2->priority, 4, "Hold priority is set to 4" );
1297
1298
    my $logs_2 = Koha::ActionLogs->search(
1299
        {
1300
            action => 'MODIFY',
1301
            module => 'HOLDS',
1302
            object => $hold_2->id
1303
        }
1304
    );
1305
1306
    is( $logs_2->count, 1, 'Hold modification was logged' );
1307
1308
    #disable HoldsLog
1309
    t::lib::Mocks::mock_preference( 'HoldsLog', 1 );
1310
1311
    $schema->storage->txn_rollback;
1312
};

Return to bug 31698