From 0c64cce2e07bad0c1a690bf47106e11dc69d3687 Mon Sep 17 00:00:00 2001 From: Fridolin Somers Date: Wed, 31 Jul 2019 10:59:37 +0200 Subject: [PATCH] Bug 23404: Change UT calls Run prove t/db_dependent/Circulation/TooMany.t Tests are OK Signed-off-by: Kyle M Hall Signed-off-by: Tomas Cohen Arazi Signed-off-by: Martin Renvoize (cherry picked from commit e98af5828a56b52426ae7aa12d1c85e4f9fb41d2) Signed-off-by: Fridolin Somers --- t/db_dependent/Circulation/TooMany.t | 85 ++++++++++++++-------------- 1 file changed, 43 insertions(+), 42 deletions(-) diff --git a/t/db_dependent/Circulation/TooMany.t b/t/db_dependent/Circulation/TooMany.t index 0a2fd22ba7..266357478b 100644 --- a/t/db_dependent/Circulation/TooMany.t +++ b/t/db_dependent/Circulation/TooMany.t @@ -85,6 +85,7 @@ my $item = $builder->build({ }); my $patron_object = Koha::Patrons->find( $patron->{borrowernumber} ); +my $item_object = Koha::Items->find( $item->{itemnumber} ); t::lib::Mocks::mock_userenv( { patron => $patron_object }); # TooMany return ($current_loan_count, $max_loans_allowed) or undef @@ -94,12 +95,12 @@ t::lib::Mocks::mock_userenv( { patron => $patron_object }); subtest 'no rules exist' => sub { plan tests => 2; is_deeply( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ), + C4::Circulation::TooMany( $patron, $item_object ), { reason => 'NO_RULE_DEFINED', max_allowed => 0 }, 'CO should not be allowed, in any cases' ); is_deeply( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ), + C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ), { reason => 'NO_RULE_DEFINED', max_allowed => 0 }, 'OSCO should not be allowed, in any cases' ); @@ -120,7 +121,7 @@ subtest '1 Issuingrule exist 0 0: no issue allowed' => sub { ); t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 0); is_deeply( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ), + C4::Circulation::TooMany( $patron, $item_object ), { reason => 'TOO_MANY_CHECKOUTS', count => 0, @@ -129,7 +130,7 @@ subtest '1 Issuingrule exist 0 0: no issue allowed' => sub { 'CO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0' ); is_deeply( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ), + C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ), { reason => 'TOO_MANY_ONSITE_CHECKOUTS', count => 0, @@ -140,7 +141,7 @@ subtest '1 Issuingrule exist 0 0: no issue allowed' => sub { t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 1); is_deeply( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ), + C4::Circulation::TooMany( $patron, $item_object ), { reason => 'TOO_MANY_CHECKOUTS', count => 0, @@ -149,7 +150,7 @@ subtest '1 Issuingrule exist 0 0: no issue allowed' => sub { 'CO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 1' ); is_deeply( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ), + C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ), { reason => 'TOO_MANY_ONSITE_CHECKOUTS', count => 0, @@ -179,7 +180,7 @@ subtest '1 Issuingrule exist with onsiteissueqty=unlimited' => sub { my $issue = C4::Circulation::AddIssue( $patron, $item->{barcode}, dt_from_string() ); t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 0); is_deeply( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ), + C4::Circulation::TooMany( $patron, $item_object ), { reason => 'TOO_MANY_CHECKOUTS', count => 1, @@ -188,14 +189,14 @@ subtest '1 Issuingrule exist with onsiteissueqty=unlimited' => sub { 'CO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0' ); is( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ), + C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ), undef, 'OSCO should be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0' ); t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 1); is_deeply( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ), + C4::Circulation::TooMany( $patron, $item_object ), { reason => 'TOO_MANY_CHECKOUTS', count => 1, @@ -204,7 +205,7 @@ subtest '1 Issuingrule exist with onsiteissueqty=unlimited' => sub { 'CO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 1' ); is_deeply( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ), + C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ), { reason => 'TOO_MANY_CHECKOUTS', count => 1, @@ -232,24 +233,24 @@ subtest '1 Issuingrule exist 1 1: issue is allowed' => sub { ); t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 0); is( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ), + C4::Circulation::TooMany( $patron, $item_object ), undef, 'CO should be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0' ); is( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ), + C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ), undef, 'OSCO should be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0' ); t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 1); is( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ), + C4::Circulation::TooMany( $patron, $item_object ), undef, 'CO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 1' ); is( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ), + C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ), undef, 'OSCO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 1' ); @@ -276,7 +277,7 @@ subtest '1 Issuingrule exist: 1 CO allowed, 1 OSCO allowed. Do a CO' => sub { t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 0); is_deeply( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ), + C4::Circulation::TooMany( $patron, $item_object ), { reason => 'TOO_MANY_CHECKOUTS', count => 1, @@ -285,14 +286,14 @@ subtest '1 Issuingrule exist: 1 CO allowed, 1 OSCO allowed. Do a CO' => sub { 'CO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0' ); is( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ), + C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ), undef, 'OSCO should be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0' ); t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 1); is_deeply( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ), + C4::Circulation::TooMany( $patron, $item_object ), { reason => 'TOO_MANY_CHECKOUTS', count => 1, @@ -301,7 +302,7 @@ subtest '1 Issuingrule exist: 1 CO allowed, 1 OSCO allowed. Do a CO' => sub { 'CO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 1' ); is_deeply( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ), + C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ), { reason => 'TOO_MANY_CHECKOUTS', count => 1, @@ -332,12 +333,12 @@ subtest '1 Issuingrule exist: 1 CO allowed, 1 OSCO allowed, Do a OSCO' => sub { t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 0); is( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ), + C4::Circulation::TooMany( $patron, $item_object ), undef, 'CO should be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0' ); is_deeply( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ), + C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ), { reason => 'TOO_MANY_ONSITE_CHECKOUTS', count => 1, @@ -348,7 +349,7 @@ subtest '1 Issuingrule exist: 1 CO allowed, 1 OSCO allowed, Do a OSCO' => sub { t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 1); is_deeply( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ), + C4::Circulation::TooMany( $patron, $item_object ), { reason => 'TOO_MANY_CHECKOUTS', count => 1, @@ -357,7 +358,7 @@ subtest '1 Issuingrule exist: 1 CO allowed, 1 OSCO allowed, Do a OSCO' => sub { 'CO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 1' ); is_deeply( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ), + C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ), { reason => 'TOO_MANY_ONSITE_CHECKOUTS', count => 1, @@ -391,7 +392,7 @@ subtest '1 BranchBorrowerCircRule exist: 1 CO allowed, 1 OSCO allowed' => sub { t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 0); is_deeply( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ), + C4::Circulation::TooMany( $patron, $item_object ), { reason => 'TOO_MANY_CHECKOUTS', count => 1, @@ -400,14 +401,14 @@ subtest '1 BranchBorrowerCircRule exist: 1 CO allowed, 1 OSCO allowed' => sub { 'CO should be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0' ); is( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ), + C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ), undef, 'OSCO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0' ); t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 1); is_deeply( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ), + C4::Circulation::TooMany( $patron, $item_object ), { reason => 'TOO_MANY_CHECKOUTS', count => 1, @@ -416,7 +417,7 @@ subtest '1 BranchBorrowerCircRule exist: 1 CO allowed, 1 OSCO allowed' => sub { 'CO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 1' ); is_deeply( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ), + C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ), { reason => 'TOO_MANY_CHECKOUTS', count => 1, @@ -432,12 +433,12 @@ subtest '1 BranchBorrowerCircRule exist: 1 CO allowed, 1 OSCO allowed' => sub { t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 0); is( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ), + C4::Circulation::TooMany( $patron, $item_object ), undef, 'CO should be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 0' ); is_deeply( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ), + C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ), { reason => 'TOO_MANY_ONSITE_CHECKOUTS', count => 1, @@ -448,7 +449,7 @@ subtest '1 BranchBorrowerCircRule exist: 1 CO allowed, 1 OSCO allowed' => sub { t::lib::Mocks::mock_preference('ConsiderOnSiteCheckoutsAsNormalCheckouts', 1); is_deeply( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ), + C4::Circulation::TooMany( $patron, $item_object ), { reason => 'TOO_MANY_CHECKOUTS', count => 1, @@ -457,7 +458,7 @@ subtest '1 BranchBorrowerCircRule exist: 1 CO allowed, 1 OSCO allowed' => sub { 'CO should not be allowed if ConsiderOnSiteCheckoutsAsNormalCheckouts == 1' ); is_deeply( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ), + C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ), { reason => 'TOO_MANY_ONSITE_CHECKOUTS', count => 1, @@ -534,7 +535,7 @@ subtest 'General vs specific rules limit quantity correctly' => sub { my $issue = C4::Circulation::AddIssue( $patron, $issue_item->barcode, dt_from_string() ); # We checkout one item is_deeply( - C4::Circulation::TooMany( $patron, $branch_item->biblionumber, $branch_item->unblessed ), + C4::Circulation::TooMany( $patron, $branch_item ), { reason => 'TOO_MANY_CHECKOUTS', count => 1, @@ -549,7 +550,7 @@ subtest 'General vs specific rules limit quantity correctly' => sub { $branch_item->biblio->biblioitem->itemtype($itemtype->{itemtype})->store; # We checkout one item is_deeply( - C4::Circulation::TooMany( $patron, $branch_item->biblionumber, $branch_item->unblessed ), + C4::Circulation::TooMany( $patron, $branch_item ), { reason => 'TOO_MANY_CHECKOUTS', count => 1, @@ -573,7 +574,7 @@ subtest 'General vs specific rules limit quantity correctly' => sub { ); is( - C4::Circulation::TooMany( $patron, $branch_item->biblionumber, $branch_item->unblessed ), + C4::Circulation::TooMany( $patron, $branch_item ), undef, 'We are allowed one from the branch specifically now' ); @@ -581,7 +582,7 @@ subtest 'General vs specific rules limit quantity correctly' => sub { # If circcontrol is PatronLibrary we count all the patron's loan, regardless of branch t::lib::Mocks::mock_preference('CircControl', 'PatronLibrary'); is_deeply( - C4::Circulation::TooMany( $patron, $branch_item->biblionumber, $branch_item->unblessed ), + C4::Circulation::TooMany( $patron, $branch_item ), { reason => 'TOO_MANY_CHECKOUTS', count => 1, @@ -600,7 +601,7 @@ subtest 'General vs specific rules limit quantity correctly' => sub { holdingbranch => $branch->{branchcode} }); is_deeply( - C4::Circulation::TooMany( $patron, $branch_item_2->biblionumber, $branch_item_2->unblessed ), + C4::Circulation::TooMany( $patron, $branch_item_2 ), { reason => 'TOO_MANY_CHECKOUTS', count => 1, @@ -614,7 +615,7 @@ subtest 'General vs specific rules limit quantity correctly' => sub { itype => $itemtype->{itemtype}, }); is_deeply( - C4::Circulation::TooMany( $patron, $item_2->biblionumber, $item_2->unblessed ), + C4::Circulation::TooMany( $patron, $item_2 ), { reason => 'TOO_MANY_CHECKOUTS', count => 2, @@ -624,7 +625,7 @@ subtest 'General vs specific rules limit quantity correctly' => sub { ); t::lib::Mocks::mock_preference('CircControl', 'PatronLibrary'); is_deeply( - C4::Circulation::TooMany( $patron, $item_2->biblionumber, $item_2->unblessed ), + C4::Circulation::TooMany( $patron, $item_2 ), { reason => 'TOO_MANY_CHECKOUTS', count => 2, @@ -635,7 +636,7 @@ subtest 'General vs specific rules limit quantity correctly' => sub { t::lib::Mocks::mock_preference('CircControl', 'PickupLibrary'); is_deeply( - C4::Circulation::TooMany( $patron, $item_2->biblionumber, $item_2->unblessed ), + C4::Circulation::TooMany( $patron, $item_2 ), { reason => 'TOO_MANY_CHECKOUTS', count => 2, @@ -647,7 +648,7 @@ subtest 'General vs specific rules limit quantity correctly' => sub { my $branch2 = $builder->build({source => 'Branch',}); t::lib::Mocks::mock_userenv({ branchcode => $branch2->{branchcode} }); is_deeply( - C4::Circulation::TooMany( $patron, $item_2->biblionumber, $item_2->unblessed ), + C4::Circulation::TooMany( $patron, $item_2 ), { reason => 'TOO_MANY_CHECKOUTS', count => 2, @@ -669,7 +670,7 @@ subtest 'General vs specific rules limit quantity correctly' => sub { ); is( - C4::Circulation::TooMany( $patron, $branch_item->biblionumber, $branch_item->unblessed ), + C4::Circulation::TooMany( $patron, $branch_item ), undef, 'We are allowed one from the branch specifically now' ); @@ -690,13 +691,13 @@ subtest 'empty string means unlimited' => sub { }, ); is( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item ), + C4::Circulation::TooMany( $patron, $item_object ), undef, 'maxissueqty="" should mean unlimited' ); is( - C4::Circulation::TooMany( $patron, $biblio->{biblionumber}, $item, { onsite_checkout => 1 } ), + C4::Circulation::TooMany( $patron, $item_object, { onsite_checkout => 1 } ), undef, 'maxonsiteissueqty="" should mean unlimited' ); -- 2.39.5