From 8bdd38ef0c0c9a892451bcf7a7f5568937ec8fb0 Mon Sep 17 00:00:00 2001
From: Kyle M Hall <kyle@bywatersolutions.com>
Date: Thu, 7 May 2020 14:21:59 -0400
Subject: [PATCH] Bug 25417: Add unit test

---
 t/db_dependent/Circulation.t | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/t/db_dependent/Circulation.t b/t/db_dependent/Circulation.t
index 7ae3b9f694..d769a67d1f 100755
--- a/t/db_dependent/Circulation.t
+++ b/t/db_dependent/Circulation.t
@@ -2827,7 +2827,7 @@ subtest '_FixAccountForLostAndFound' => sub {
 };
 
 subtest '_FixOverduesOnReturn' => sub {
-    plan tests => 11;
+    plan tests => 12;
 
     my $manager = $builder->build_object({ class => "Koha::Patrons" });
     t::lib::Mocks::mock_userenv({ patron => $manager, branchcode => $manager->branchcode });
@@ -2891,6 +2891,21 @@ subtest '_FixOverduesOnReturn' => sub {
     is( ref $credit, "Koha::Account::Line", "Found matching credit for fine forgiveness" );
     is( $credit->amount + 0, -99, "Credit amount is set correctly" );
     is( $credit->amountoutstanding + 0, 0, "Credit amountoutstanding is correctly set to 0" );
+    $offset->delete;
+
+    $accountline->set(
+        {
+            debit_type_code    => 'OVERDUE',
+            status         => 'UNRETURNED',
+            amountoutstanding => 0.00,
+        }
+    )->store();
+
+    C4::Circulation::_FixOverduesOnReturn( $patron->{borrowernumber}, $item->itemnumber, 1, 'RETURNED' );
+
+    $accountline->_result()->discard_changes();
+    $offset = Koha::Account::Offsets->search({ debit_id => $accountline->id, type => 'Forgiven' })->next();
+    is( $offset, undef, "No offset created when trying to forgive fine with no outstanding balance" );
 };
 
 subtest '_FixAccountForLostAndFound returns undef if patron is deleted' => sub {
-- 
2.24.2 (Apple Git-127)