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

(-)a/t/db_dependent/Circulation/issue.t (-30 / +80 lines)
Lines 17-23 Link Here
17
17
18
use Modern::Perl;
18
use Modern::Perl;
19
19
20
use Test::More tests => 67;
20
use Test::More tests => 65;
21
use DateTime::Duration;
21
use DateTime::Duration;
22
22
23
use t::lib::Mocks;
23
use t::lib::Mocks;
Lines 496-530 is( Link Here
496
#
496
#
497
##############################################
497
##############################################
498
498
499
my $itemnumber4 = Koha::Item->new(
499
subtest 'AddReturn: Update notforloanstatus according to UpdateNotForLoanStatusOnCheckout' => sub {
500
    {
500
    plan tests => 5;
501
        biblionumber   => $biblionumber,
502
        barcode        => 'barcode_6',
503
        itemcallnumber => 'callnumber6',
504
        homebranch     => $branchcode_1,
505
        holdingbranch  => $branchcode_1,
506
        notforloan     => -1,
507
        itype          => $itemtype,
508
        location       => 'loc1'
509
    },
510
)->store->itemnumber;
511
512
t::lib::Mocks::mock_preference( 'UpdateNotForLoanStatusOnCheckout', q{} );
513
AddIssue( $patron_2, 'barcode_6', dt_from_string );
514
$item = Koha::Items->find( $itemnumber4 );
515
ok( $item->notforloan eq -1, 'UpdateNotForLoanStatusOnCheckout does not modify value when not enabled' );
516
517
t::lib::Mocks::mock_preference( 'UpdateNotForLoanStatusOnCheckout', '-1: 0' );
518
AddReturn( 'barcode_6', $branchcode_1 );
519
my $test = AddIssue( $patron_2, 'barcode_6', dt_from_string );
520
$item = Koha::Items->find( $itemnumber4 );
521
ok( $item->notforloan eq 0, q{UpdateNotForLoanStatusOnCheckout updates notforloan value from -1 to 0 with setting "-1: 0"} );
522
523
AddIssue( $patron_2, 'barcode_6', dt_from_string );
524
AddReturn( 'barcode_6', $branchcode_1 );
525
$item = Koha::Items->find( $itemnumber4 );
526
ok( $item->notforloan eq 0, q{UpdateNotForLoanStatusOnCheckout does not update notforloan value from 0 with setting "-1: 0"} );
527
501
502
    my $itemnumber4 = Koha::Item->new(
503
        {
504
            biblionumber   => $biblionumber,
505
            barcode        => 'barcode_6',
506
            itemcallnumber => 'callnumber6',
507
            homebranch     => $branchcode_1,
508
            holdingbranch  => $branchcode_1,
509
            notforloan     => -1,
510
            itype          => $itemtype,
511
            location       => 'loc1'
512
        },
513
    )->store->itemnumber;
514
515
    t::lib::Mocks::mock_preference( 'UpdateNotForLoanStatusOnCheckout', q{} );
516
    AddIssue( $patron_2, 'barcode_6', dt_from_string );
517
    $item = Koha::Items->find($itemnumber4);
518
    ok( $item->notforloan eq -1, 'UpdateNotForLoanStatusOnCheckout does not modify value when not enabled' );
519
    AddReturn( 'barcode_6', $branchcode_1 );
520
521
    t::lib::Mocks::mock_preference(
522
        'UpdateNotForLoanStatusOnCheckout', q{ _ALL_:
523
        -1: 0
524
    }
525
    );
526
    $item->notforloan(-1)->store;
527
    my $test = AddIssue( $patron_2, 'barcode_6', dt_from_string );
528
    $item = Koha::Items->find($itemnumber4);
529
    ok(
530
        $item->notforloan eq 0,
531
        q{UpdateNotForLoanStatusOnCheckout updates notforloan value from -1 to 0 with setting "_ALL_: -1: 0"}
532
    );
533
    AddReturn( 'barcode_6', $branchcode_1 );
534
535
    $item->notforloan(1)->store;
536
    AddIssue( $patron_2, 'barcode_6', dt_from_string );
537
    $item = Koha::Items->find($itemnumber4);
538
    ok(
539
        $item->notforloan eq 1,
540
        q{UpdateNotForLoanStatusOnCheckout does not update notforloan value from 1 with setting "_ALL_: -1: 0"}
541
    );
542
    AddReturn( 'barcode_6', $branchcode_1 );
543
544
    t::lib::Mocks::mock_preference(
545
        'UpdateNotForLoanStatusOnCheckout', q{
546
    _ALL_:
547
        -1: 0
548
    } . $itemtype . q{:
549
        -1: 1
550
    }
551
    );
552
553
    $item->notforloan(-1)->store;
554
    AddIssue( $patron_2, 'barcode_6', dt_from_string );
555
    $item = Koha::Items->find($itemnumber4);
556
    ok( $item->notforloan eq 1, q{UpdateNotForLoanStatusOnCheckout uses the most specific rule to update notforloan } );
557
    AddReturn( 'barcode_6', $branchcode_1 );
558
559
    t::lib::Mocks::mock_preference(
560
        'UpdateNotForLoanStatusOnCheckout', q{
561
    _ALL_:
562
        -1: 0
563
    NOT_} . $itemtype . q{:
564
        -1: 1
565
    }
566
    );
567
568
    $item->notforloan(-1)->store;
569
    AddIssue( $patron_2, 'barcode_6', dt_from_string );
570
    $item = Koha::Items->find($itemnumber4);
571
    ok(
572
        $item->notforloan eq 0,
573
        q{UpdateNotForLoanStatusOnCheckout uses the default rule (_ALL_) if no rule matches the itype}
574
    );
575
    AddReturn( 'barcode_6', $branchcode_1 );
576
577
    $item->delete;
578
};
528
579
529
##########################################
580
##########################################
530
#
581
#
531
- 

Return to bug 35292