Bug 24759: Unit tests for AddRenewal
authorKyle M Hall <kyle@bywatersolutions.com>
Wed, 26 Jun 2019 11:43:53 +0000 (07:43 -0400)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Tue, 24 Mar 2020 10:48:29 +0000 (10:48 +0000)
Signed-off-by: Andrew Fuerste-Henry <andrew@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

t/db_dependent/Circulation/issue.t

index 7e3072e..7dfe5b9 100644 (file)
@@ -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;
@@ -238,25 +238,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" );