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

(-)a/t/db_dependent/Circulation.t (-3 / +207 lines)
Lines 19-25 use Modern::Perl; Link Here
19
use utf8;
19
use utf8;
20
20
21
use Test::NoWarnings;
21
use Test::NoWarnings;
22
use Test::More tests => 76;
22
use Test::More tests => 77;
23
use Test::Exception;
23
use Test::Exception;
24
use Test::MockModule;
24
use Test::MockModule;
25
use Test::Deep qw( cmp_deeply );
25
use Test::Deep qw( cmp_deeply );
Lines 1902-1908 subtest "CanBookBeRenewed | bookings" => sub { Link Here
1902
    my $schema = Koha::Database->schema;
1902
    my $schema = Koha::Database->schema;
1903
    $schema->storage->txn_begin;
1903
    $schema->storage->txn_begin;
1904
1904
1905
    t::lib::Mocks::mock_preference( 'RenewalPeriodBase', 'date_due' );
1905
    t::lib::Mocks::mock_preference( 'RenewalPeriodBase',   'date_due' );
1906
    t::lib::Mocks::mock_preference( 'ChildNeedsGuarantor', 0 );
1906
1907
1907
    my $renewing_patron = $builder->build_object( { class => 'Koha::Patrons' } );
1908
    my $renewing_patron = $builder->build_object( { class => 'Koha::Patrons' } );
1908
    my $booked_patron   = $builder->build_object( { class => 'Koha::Patrons' } );
1909
    my $booked_patron   = $builder->build_object( { class => 'Koha::Patrons' } );
Lines 7400-7405 subtest 'NoRefundOnLostFinesPaidAge' => sub { Link Here
7400
    );
7401
    );
7401
};
7402
};
7402
7403
7404
subtest 'ChildNeedsGuarantor' => sub {
7405
    plan tests => 18;
7406
7407
    t::lib::Mocks::mock_preference( 'ChildNeedsGuarantor', 0 );
7408
    my $library        = $builder->build_object( { class => 'Koha::Libraries' } );
7409
    my $child_category = $builder->build_object(
7410
        {
7411
            class => 'Koha::Patron::Categories',
7412
            value => {
7413
                category_type => 'C',
7414
                enrolmentfee  => 0,
7415
            }
7416
        }
7417
    );
7418
    my $guarantee_category = $builder->build_object(
7419
        {
7420
            class => 'Koha::Patron::Categories',
7421
            value => {
7422
                category_type    => 'P',
7423
                enrolmentfee     => 0,
7424
                can_be_guarantee => 1,
7425
            }
7426
        }
7427
    );
7428
    my $guarantor_category = $builder->build_object(
7429
        {
7430
            class => 'Koha::Patron::Categories',
7431
            value => {
7432
                category_type    => 'P',
7433
                enrolmentfee     => 0,
7434
                can_be_guarantee => 0,
7435
            }
7436
        }
7437
    );
7438
    my $child_patron = $builder->build_object(
7439
        {
7440
            class => 'Koha::Patrons',
7441
            value => { categorycode => $child_category->categorycode, contactname => '' }
7442
        }
7443
    );
7444
    my $guarantee_patron = $builder->build_object(
7445
        {
7446
            class => 'Koha::Patrons',
7447
            value => { categorycode => $guarantee_category->categorycode, contactname => '' }
7448
        }
7449
    );
7450
    my $guarantor_patron = $builder->build_object(
7451
        {
7452
            class => 'Koha::Patrons',
7453
            value => { categorycode => $guarantee_category->categorycode, contactname => '' }
7454
        }
7455
    );
7456
    t::lib::Mocks::mock_preference( 'ChildNeedsGuarantor',             1 );
7457
    t::lib::Mocks::mock_preference( 'TrackLastPatronActivityTriggers', 'check_in,check_out,renewal' );
7458
7459
    my $biblionumber = $builder->build_sample_biblio(
7460
        {
7461
            branchcode => $library->branchcode,
7462
        }
7463
    )->biblionumber;
7464
7465
    Koha::CirculationRules->set_rules(
7466
        {
7467
            categorycode => undef,
7468
            itemtype     => undef,
7469
            branchcode   => $library->branchcode,
7470
            rules        => {
7471
                issuelength => 14,
7472
                lengthunit  => 'days',
7473
            }
7474
        }
7475
    );
7476
7477
    my $item = $builder->build_sample_item(
7478
        {
7479
            biblionumber => $biblionumber,
7480
            library      => $library->branchcode,
7481
        }
7482
    );
7483
    warnings_like {
7484
        AddIssue( $child_patron, $item->barcode, undef );
7485
    }
7486
    qr/Problem updating lastseen/,
7487
        "AddIssue generates a warning when Child type patron is missing a guarantor and ChildsNeedsGuarantor";
7488
    warnings_like {
7489
        AddRenewal(
7490
            {
7491
                borrowernumber => $child_patron->borrowernumber, itemnumber => $item->itemnumber,
7492
                branch         => $library->branchcode
7493
            }
7494
        );
7495
    }
7496
    qr/Problem updating lastseen/,
7497
        "AddRenewal generates a warning when Child type patron is missing a guarantor and ChildNeedsGuarantor";
7498
    warnings_like {
7499
        AddReturn( $item->barcode, $library->branchcode, undef, undef );
7500
    }
7501
    qr/Problem updating lastseen/,
7502
        "AddReturn generates a warning when Child type patron is missing a guarantor and ChildNeedsGuarantor";
7503
7504
    warnings_like {
7505
        AddIssue( $guarantee_patron, $item->barcode, undef );
7506
    }
7507
    qr/Problem updating lastseen/,
7508
        "AddIssue generates a warning when can_be_guarantee type patron is missing a guarantor and ChildsNeedsGuarantor";
7509
    warnings_like {
7510
        AddRenewal(
7511
            {
7512
                borrowernumber => $guarantee_patron->borrowernumber, itemnumber => $item->itemnumber,
7513
                branch         => $library->branchcode
7514
            }
7515
        );
7516
    }
7517
    qr/Problem updating lastseen/,
7518
        "AddRenewal generates a warning when can_be_guarantee type patron is missing a guarantor and ChildNeedsGuarantor";
7519
    warnings_like {
7520
        AddReturn( $item->barcode, $library->branchcode, undef, undef );
7521
    }
7522
    qr/Problem updating lastseen/,
7523
        "AddReturn generates a warning when can_be_guarantee type patron is missing a guarantor and ChildNeedsGuarantor";
7524
7525
    t::lib::Mocks::mock_preference( 'ChildNeedsGuarantor', 0 );
7526
    warnings_like {
7527
        AddIssue( $child_patron, $item->barcode, undef );
7528
    }
7529
    undef, "AddIssue generates no warning when Child type patron is missing a guarantor and not ChildsNeedsGuarantor";
7530
    warnings_like {
7531
        AddRenewal(
7532
            {
7533
                borrowernumber => $child_patron->borrowernumber, itemnumber => $item->itemnumber,
7534
                branch         => $library->branchcode
7535
            }
7536
        );
7537
    }
7538
    undef, "AddRenewal generates no warning when Child type patron is missing a guarantor and not ChildNeedsGuarantor";
7539
    warnings_like {
7540
        AddReturn( $item->barcode, $library->branchcode, undef, undef );
7541
    }
7542
    undef, "AddReturn generates no warning when Child type patron is missing a guarantor and not ChildNeedsGuarantor";
7543
7544
    warnings_like {
7545
        AddIssue( $guarantee_patron, $item->barcode, undef );
7546
    }
7547
    undef,
7548
        "AddIssue generates no warning when can_be_guarantee type patron is missing a guarantor and not ChildsNeedsGuarantor";
7549
    warnings_like {
7550
        AddRenewal(
7551
            {
7552
                borrowernumber => $guarantee_patron->borrowernumber, itemnumber => $item->itemnumber,
7553
                branch         => $library->branchcode
7554
            }
7555
        );
7556
    }
7557
    undef,
7558
        "AddRenewal generates no warning when can_be_guarantee type patron is missing a guarantor and not ChildNeedsGuarantor";
7559
    warnings_like {
7560
        AddReturn( $item->barcode, $library->branchcode, undef, undef );
7561
    }
7562
    undef,
7563
        "AddReturn generates no warning when can_be_guarantee type patron is missing a guarantor and not ChildNeedsGuarantor";
7564
7565
    t::lib::Mocks::mock_preference( 'ChildNeedsGuarantor', 1 );
7566
    $child_patron->contactname("Anybody")->store;
7567
    warnings_like {
7568
        AddIssue( $child_patron, $item->barcode, undef );
7569
    }
7570
    undef, "AddIssue generates no warning when Child type patron has a guarantor and ChildsNeedsGuarantor";
7571
    warnings_like {
7572
        AddRenewal(
7573
            {
7574
                borrowernumber => $child_patron->borrowernumber, itemnumber => $item->itemnumber,
7575
                branch         => $library->branchcode
7576
            }
7577
        );
7578
    }
7579
    undef, "AddRenewal generates no warning when Child type patron has a guarantor and not ChildNeedsGuarantor";
7580
    warnings_like {
7581
        AddReturn( $item->barcode, $library->branchcode, undef, undef );
7582
    }
7583
    undef, "AddReturn generates no warning when Child type patron has a guarantor and not ChildNeedsGuarantor";
7584
7585
    $guarantee_patron->add_guarantor( { guarantor_id => $guarantor_patron->borrowernumber, relationship => 'father' } );
7586
    warnings_like {
7587
        AddIssue( $guarantee_patron, $item->barcode, undef );
7588
    }
7589
    undef,
7590
        "AddIssue generates no warning when can_be_guarantee type patron has a guarantor and not ChildsNeedsGuarantor";
7591
    warnings_like {
7592
        AddRenewal(
7593
            {
7594
                borrowernumber => $guarantee_patron->borrowernumber, itemnumber => $item->itemnumber,
7595
                branch         => $library->branchcode
7596
            }
7597
        );
7598
    }
7599
    undef,
7600
        "AddRenewal generates no warning when can_be_guarantee type patron has a guarantor and not ChildNeedsGuarantor";
7601
    warnings_like {
7602
        AddReturn( $item->barcode, $library->branchcode, undef, undef );
7603
    }
7604
    undef,
7605
        "AddReturn generates no warning when can_be_guarantee type patron has a guarantor and not ChildNeedsGuarantor";
7606
};
7607
7403
$schema->storage->txn_rollback;
7608
$schema->storage->txn_rollback;
7404
C4::Context->clear_syspref_cache();
7609
C4::Context->clear_syspref_cache();
7405
$branches = Koha::Libraries->search();
7610
$branches = Koha::Libraries->search();
7406
- 

Return to bug 39180