From 2b721e1aa7104f4a049c7c43948d98ce77631bdd Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Wed, 26 Jun 2019 07:43:53 -0400 Subject: [PATCH] Bug 23165: Unit tests for AddRenewal https://bugs.koha-community.org/show_bug.cgi?id=24759 --- t/db_dependent/Circulation/issue.t | 84 ++++++++++++++++++++++++++++---------- 1 file changed, 63 insertions(+), 21 deletions(-) diff --git a/t/db_dependent/Circulation/issue.t b/t/db_dependent/Circulation/issue.t index c2fcbaaf1a..34c89ef3ee 100644 --- a/t/db_dependent/Circulation/issue.t +++ b/t/db_dependent/Circulation/issue.t @@ -23,10 +23,10 @@ use DateTime::Duration; use t::lib::Mocks; use t::lib::TestBuilder; -use C4::Circulation; -use C4::Items; use C4::Biblio; +use C4::Circulation; use C4::Context; +use C4::Items; use C4::Reserves; use Koha::Checkouts; use Koha::Database; @@ -243,25 +243,67 @@ like( my $stat = $dbh->selectrow_hashref("SELECT * FROM statistics WHERE type = 'renew' AND borrowernumber = ? AND itemnumber = ? AND branch = ?", undef, $borrower_id1, $item_id1, $branchcode_3 ); ok( $stat, "Bug 17781 - 'Improper branchcode set during renewal' still fixed" ); -$se->mock( 'interface', sub {return 'opac'}); - -#Let's do an opac renewal - whatever branchcode we send should be used -my $opac_renew_issue = $builder->build({ - source=>"Issue", - value=>{ - date_due => '2017-01-01', - branch => $branchcode_1, - itype => $itemtype, - borrowernumber => $borrower_id1 - } -}); - -my $datedue4 = AddRenewal( $opac_renew_issue->{borrowernumber}, $opac_renew_issue->{itemnumber}, "Stavromula", $datedue1, $daysago10 ); - -$stat = $dbh->selectrow_hashref("SELECT * FROM statistics WHERE type = 'renew' AND borrowernumber = ? AND itemnumber = ? AND branch = ?", undef, $opac_renew_issue->{borrowernumber}, $opac_renew_issue->{itemnumber}, "Stavromula" ); -ok( $stat, "Bug 18572 - 'Bug 18572 - OpacRenewalBranch is now respected" ); - - +subtest 'Show that AddRenewal respects OpacRenewalBranch and interface' => sub { + plan tests => 5; + + $se->mock( 'interface', sub { return 'opac' } ); + + t::lib::Mocks::mock_preference( 'OpacRenewalBranch', 'opacrenew' ); + my $item = $builder->build_sample_item({ itype => $itemtype}); + my $opac_renew_issue = C4::Circulation::AddIssue( $borrower_1, $item->barcode ); + AddRenewal( + $borrower_id1, + $item->itemnumber, + "Stavromula", $datedue1, $daysago10 + ); + my $stat = $schema->resultset('Statistic')->search({ itemnumber => $item->itemnumber, type => 'renew' })->next; + is( $stat->branch, "OPACRenew", "OpacRenewalBranch is respected for OpacRenewalBranch = OPACRenew" ); + + t::lib::Mocks::mock_preference( 'OpacRenewalBranch', 'checkoutbranch' ); + my $item2 = $builder->build_sample_item({ itype => $itemtype}); + $opac_renew_issue = C4::Circulation::AddIssue( $borrower_1, $item2->barcode ); + AddRenewal( + $borrower_id1, + $item2->itemnumber, + "Stavromula", $datedue1, $daysago10 + ); + $stat = $schema->resultset('Statistic')->search({ itemnumber => $item2->itemnumber, type => 'renew' })->next; + is( $stat->branch, $patron_1->branchcode, "OpacRenewalBranch is respected for OpacRenewalBranch = checkoutbranch" ); + + t::lib::Mocks::mock_preference( 'OpacRenewalBranch', 'patronhomebranch' ); + my $item3 = $builder->build_sample_item({ itype => $itemtype}); + $opac_renew_issue = C4::Circulation::AddIssue( $borrower_1, $item3->barcode ); + AddRenewal( + $borrower_id1, + $item3->itemnumber, + "Stavromula", $datedue1, $daysago10 + ); + $stat = $schema->resultset('Statistic')->search({ itemnumber => $item3->itemnumber, type => 'renew' })->next; + my $patron = Koha::Patrons->find( $borrower_id1 ); + is( $stat->branch, $patron->branchcode, "OpacRenewalBranch is respected for OpacRenewalBranch = patronhomebranch" ); + + t::lib::Mocks::mock_preference( 'OpacRenewalBranch', 'itemhomebranch' ); + my $item4 = $builder->build_sample_item({ itype => $itemtype}); + $opac_renew_issue = C4::Circulation::AddIssue( $borrower_1, $item4->barcode ); + AddRenewal( + $borrower_id1, + $item4->itemnumber, + "Stavromula", $datedue1, $daysago10 + ); + $stat = $schema->resultset('Statistic')->search({ itemnumber => $item4->itemnumber, type => 'renew' })->next; + is( $stat->branch, $item4->homebranch, "OpacRenewalBranch is respected for OpacRenewalBranch = itemhomebranch" ); + + t::lib::Mocks::mock_preference( 'OpacRenewalBranch', 'none' ); + my $item5 = $builder->build_sample_item({ itype => $itemtype}); + $opac_renew_issue = C4::Circulation::AddIssue( $borrower_1, $item5->barcode ); + AddRenewal( + $borrower_id1, + $item5->itemnumber, + "Stavromula", $datedue1, $daysago10 + ); + $stat = $schema->resultset('Statistic')->search({ itemnumber => $item5->itemnumber, type => 'renew' })->next; + is( $stat->branch, "", "OpacRenewalBranch is respected for OpacRenewalBranch none" ); +}; #Test GetBiblioIssues is( GetBiblioIssues(), undef, "GetBiblio Issues without parameters" ); -- 2.11.0