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

(-)a/t/db_dependent/Circulation.t (-2 / +87 lines)
Lines 18-24 Link Here
18
use Modern::Perl;
18
use Modern::Perl;
19
use utf8;
19
use utf8;
20
20
21
use Test::More tests => 53;
21
use Test::More tests => 54;
22
use Test::Exception;
22
use Test::Exception;
23
use Test::MockModule;
23
use Test::MockModule;
24
use Test::Deep qw( cmp_deeply );
24
use Test::Deep qw( cmp_deeply );
Lines 282-287 Koha::CirculationRules->set_rules( Link Here
282
    }
282
    }
283
);
283
);
284
284
285
subtest "CanBookBeRenewed AllowRenewalIfOtherItemsAvailable multiple borrowers and items tests" => sub {
286
    plan tests => 5;
287
288
    #Can only reserve from home branch
289
    Koha::CirculationRules->set_rule(
290
        {
291
            branchcode   => undef,
292
            itemtype     => undef,
293
            rule_name    => 'holdallowed',
294
            rule_value   => 1
295
        }
296
    );
297
    Koha::CirculationRules->set_rule(
298
        {
299
            branchcode   => undef,
300
            categorycode   => undef,
301
            itemtype     => undef,
302
            rule_name    => 'onshelfholds',
303
            rule_value   => 1
304
        }
305
    );
306
307
    # Patrons from three different branches
308
    my $patron_borrower = $builder->build_object({ class => 'Koha::Patrons' });
309
    my $patron_hold_1   = $builder->build_object({ class => 'Koha::Patrons' });
310
    my $patron_hold_2   = $builder->build_object({ class => 'Koha::Patrons' });
311
    my $biblio = $builder->build_sample_biblio();
312
313
    # Item at each patron branch
314
    my $item_1 = $builder->build_sample_item({
315
        biblionumber => $biblio->biblionumber,
316
        homebranch   => $patron_borrower->branchcode
317
    });
318
    my $item_2 = $builder->build_sample_item({
319
        biblionumber => $biblio->biblionumber,
320
        homebranch   => $patron_hold_2->branchcode
321
    });
322
    my $item_3 = $builder->build_sample_item({
323
        biblionumber => $biblio->biblionumber,
324
        homebranch   => $patron_hold_1->branchcode
325
    });
326
327
    my $issue = AddIssue( $patron_borrower->unblessed, $item_1->barcode);
328
    my $datedue = dt_from_string( $issue->date_due() );
329
    is (defined $issue->date_due(), 1, "Item 1 checked out, due date: " . $issue->date_due() );
330
331
    # Biblio-level holds
332
    AddReserve(
333
        {
334
            branchcode       => $patron_hold_1->branchcode,
335
            borrowernumber   => $patron_hold_1->borrowernumber,
336
            biblionumber     => $biblio->biblionumber,
337
            priority         => 1,
338
            reservation_date => dt_from_string(),
339
            expiration_date  => undef,
340
            itemnumber       => undef,
341
            found            => undef,
342
        }
343
    );
344
    AddReserve(
345
        {
346
            branchcode       => $patron_hold_2->branchcode,
347
            borrowernumber   => $patron_hold_2->borrowernumber,
348
            biblionumber     => $biblio->biblionumber,
349
            priority         => 2,
350
            reservation_date => dt_from_string(),
351
            expiration_date  => undef,
352
            itemnumber       => undef,
353
            found            => undef,
354
        }
355
    );
356
    t::lib::Mocks::mock_preference('AllowRenewalIfOtherItemsAvailable', 0 );
357
358
    my ( $renewokay, $error ) = CanBookBeRenewed($patron_borrower->borrowernumber, $item_1->itemnumber);
359
    is( $renewokay, 0, 'Cannot renew, reserved');
360
    is( $error, 'on_reserve', 'Cannot renew, reserved (returned error is on_reserve)');
361
362
    t::lib::Mocks::mock_preference('AllowRenewalIfOtherItemsAvailable', 1 );
363
364
    ( $renewokay, $error ) = CanBookBeRenewed($patron_borrower->borrowernumber, $item_1->itemnumber);
365
    is( $renewokay, 1, 'Can renew, two items available for two holds');
366
    is( $error, undef, 'Can renew, each reserve has an item');
367
368
369
};
370
285
subtest "GetIssuingCharges tests" => sub {
371
subtest "GetIssuingCharges tests" => sub {
286
    plan tests => 4;
372
    plan tests => 4;
287
    my $branch_discount = $builder->build_object({ class => 'Koha::Libraries' });
373
    my $branch_discount = $builder->build_object({ class => 'Koha::Libraries' });
288
- 

Return to bug 28013