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

(-)a/t/db_dependent/Circulation/issue.t (-35 / +80 lines)
Lines 18-24 Link Here
18
use Modern::Perl;
18
use Modern::Perl;
19
19
20
use Test::NoWarnings;
20
use Test::NoWarnings;
21
use Test::More tests => 68;
21
use Test::More tests => 66;
22
use DateTime::Duration;
22
use DateTime::Duration;
23
23
24
use t::lib::Mocks;
24
use t::lib::Mocks;
Lines 519-558 is( Link Here
519
#
519
#
520
##############################################
520
##############################################
521
521
522
my $itemnumber4 = Koha::Item->new(
522
subtest 'AddReturn: Update notforloanstatus according to UpdateNotForLoanStatusOnCheckout' => sub {
523
    {
523
    plan tests => 5;
524
        biblionumber   => $biblionumber,
525
        barcode        => 'barcode_6',
526
        itemcallnumber => 'callnumber6',
527
        homebranch     => $branchcode_1,
528
        holdingbranch  => $branchcode_1,
529
        notforloan     => -1,
530
        itype          => $itemtype,
531
        location       => 'loc1'
532
    },
533
)->store->itemnumber;
534
535
t::lib::Mocks::mock_preference( 'UpdateNotForLoanStatusOnCheckout', q{} );
536
AddIssue( $patron_2, 'barcode_6', dt_from_string );
537
$item = Koha::Items->find($itemnumber4);
538
ok( $item->notforloan eq -1, 'UpdateNotForLoanStatusOnCheckout does not modify value when not enabled' );
539
524
540
t::lib::Mocks::mock_preference( 'UpdateNotForLoanStatusOnCheckout', '-1: 0' );
525
    my $itemnumber4 = Koha::Item->new(
541
AddReturn( 'barcode_6', $branchcode_1 );
526
        {
542
my $test = AddIssue( $patron_2, 'barcode_6', dt_from_string );
527
            biblionumber   => $biblionumber,
543
$item = Koha::Items->find($itemnumber4);
528
            barcode        => 'barcode_6',
544
ok(
529
            itemcallnumber => 'callnumber6',
545
    $item->notforloan eq 0,
530
            homebranch     => $branchcode_1,
546
    q{UpdateNotForLoanStatusOnCheckout updates notforloan value from -1 to 0 with setting "-1: 0"}
531
            holdingbranch  => $branchcode_1,
547
);
532
            notforloan     => -1,
548
533
            itype          => $itemtype,
549
AddIssue( $patron_2, 'barcode_6', dt_from_string );
534
            location       => 'loc1'
550
AddReturn( 'barcode_6', $branchcode_1 );
535
        },
551
$item = Koha::Items->find($itemnumber4);
536
    )->store->itemnumber;
552
ok(
537
553
    $item->notforloan eq 0,
538
    t::lib::Mocks::mock_preference( 'UpdateNotForLoanStatusOnCheckout', q{} );
554
    q{UpdateNotForLoanStatusOnCheckout does not update notforloan value from 0 with setting "-1: 0"}
539
    AddIssue( $patron_2, 'barcode_6', dt_from_string );
555
);
540
    $item = Koha::Items->find($itemnumber4);
541
    ok( $item->notforloan eq -1, 'UpdateNotForLoanStatusOnCheckout does not modify value when not enabled' );
542
    AddReturn( 'barcode_6', $branchcode_1 );
543
544
    t::lib::Mocks::mock_preference(
545
        'UpdateNotForLoanStatusOnCheckout', q{ _ALL_:
546
        -1: 0
547
    }
548
    );
549
    $item->notforloan(-1)->store;
550
    my $test = AddIssue( $patron_2, 'barcode_6', dt_from_string );
551
    $item = Koha::Items->find($itemnumber4);
552
    ok(
553
        $item->notforloan eq 0,
554
        q{UpdateNotForLoanStatusOnCheckout updates notforloan value from -1 to 0 with setting "_ALL_: -1: 0"}
555
    );
556
    AddReturn( 'barcode_6', $branchcode_1 );
557
558
    $item->notforloan(1)->store;
559
    AddIssue( $patron_2, 'barcode_6', dt_from_string );
560
    $item = Koha::Items->find($itemnumber4);
561
    ok(
562
        $item->notforloan eq 1,
563
        q{UpdateNotForLoanStatusOnCheckout does not update notforloan value from 1 with setting "_ALL_: -1: 0"}
564
    );
565
    AddReturn( 'barcode_6', $branchcode_1 );
566
567
    t::lib::Mocks::mock_preference(
568
        'UpdateNotForLoanStatusOnCheckout', q{
569
    _ALL_:
570
        -1: 0
571
    } . $itemtype . q{:
572
        -1: 1
573
    }
574
    );
575
576
    $item->notforloan(-1)->store;
577
    AddIssue( $patron_2, 'barcode_6', dt_from_string );
578
    $item = Koha::Items->find($itemnumber4);
579
    ok( $item->notforloan eq 1, q{UpdateNotForLoanStatusOnCheckout uses the most specific rule to update notforloan } );
580
    AddReturn( 'barcode_6', $branchcode_1 );
581
582
    t::lib::Mocks::mock_preference(
583
        'UpdateNotForLoanStatusOnCheckout', q{
584
    _ALL_:
585
        -1: 0
586
    NOT_} . $itemtype . q{:
587
        -1: 1
588
    }
589
    );
590
591
    $item->notforloan(-1)->store;
592
    AddIssue( $patron_2, 'barcode_6', dt_from_string );
593
    $item = Koha::Items->find($itemnumber4);
594
    ok(
595
        $item->notforloan eq 0,
596
        q{UpdateNotForLoanStatusOnCheckout uses the default rule (_ALL_) if no rule matches the itype}
597
    );
598
    AddReturn( 'barcode_6', $branchcode_1 );
599
600
    $item->delete;
601
};
556
602
557
##########################################
603
##########################################
558
#
604
#
559
- 

Return to bug 35292