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;
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" );