This is an automated email from the ASF dual-hosted git repository.

meonkeys pushed a commit to branch auto-close-static-mocks
in repository https://gitbox.apache.org/repos/asf/fineract.git

commit 239bfe1da15eabe64101001af12e7e4e5ad57054
Author: Adam Monsen <[email protected]>
AuthorDate: Fri Aug 22 23:50:11 2025 +0530

    WIP test fix for MockitoException
    
    fixes local integration test failures, in, e.g. InterestPeriodTest and 
RepaymentPeriodTest, like this:
    
    ```text
    initializationError
    
    org.mockito.exceptions.base.MockitoException:
    For org.apache.fineract.organisation.monetary.domain.MoneyHelper, static 
mocking is already registered in the current thread
    
    To create a new mock, the existing static mock registration must be 
deregistered
            at 
app//org.apache.fineract.portfolio.loanproduct.calc.data.RepaymentPeriodTest.init(RepaymentPeriodTest.java:53)
            at [email protected]/java.lang.reflect.Method.invoke(Method.java:580)
            at [email protected]/java.util.ArrayList.forEach(Unknown Source)
    ```
    
    ⚠️ only appears to be breaking for me when I run some or all integration 
tests locally ⚠️
    
    see https://lists.apache.org/thread/tk29hd7ojxmbf3vmvj61b5g9zfg2v4y3
    
    also see @adamsaghy's https://github.com/apache/fineract/pull/4975
---
 .../portfolio/loanproduct/calc/data/InterestPeriodTest.java      | 9 ++++-----
 .../portfolio/loanproduct/calc/data/RepaymentPeriodTest.java     | 8 ++++----
 2 files changed, 8 insertions(+), 9 deletions(-)

diff --git 
a/fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/calc/data/InterestPeriodTest.java
 
b/fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/calc/data/InterestPeriodTest.java
index 68c67b4d7a..d2df95175a 100644
--- 
a/fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/calc/data/InterestPeriodTest.java
+++ 
b/fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/calc/data/InterestPeriodTest.java
@@ -46,13 +46,12 @@ class InterestPeriodTest {
     private static final CurrencyData USD = new CurrencyData("USD", "US 
Dollar", 2, 1, "$", "USD");
     private static final Money ZERO = Money.of(USD, BigDecimal.ZERO, MC);
 
-    private static MockedStatic<MoneyHelper> moneyHelper;
-
     @BeforeAll
     static void init() {
-        moneyHelper = Mockito.mockStatic(MoneyHelper.class);
-        
moneyHelper.when(MoneyHelper::getRoundingMode).thenReturn(RoundingMode.HALF_EVEN);
-        moneyHelper.when(MoneyHelper::getMathContext).thenReturn(MC);
+        try (MockedStatic<MoneyHelper> moneyHelper = 
Mockito.mockStatic(MoneyHelper.class)) {
+            
moneyHelper.when(MoneyHelper::getRoundingMode).thenReturn(RoundingMode.HALF_EVEN);
+            moneyHelper.when(MoneyHelper::getMathContext).thenReturn(MC);
+        }
     }
 
     @Test
diff --git 
a/fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/calc/data/RepaymentPeriodTest.java
 
b/fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/calc/data/RepaymentPeriodTest.java
index f7e05cc516..105a4e6e06 100644
--- 
a/fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/calc/data/RepaymentPeriodTest.java
+++ 
b/fineract-progressive-loan/src/test/java/org/apache/fineract/portfolio/loanproduct/calc/data/RepaymentPeriodTest.java
@@ -45,14 +45,14 @@ class RepaymentPeriodTest {
     private static final CurrencyData USD = new CurrencyData("USD", "US 
Dollar", 2, 1, "$", "USD");
     private static final Money ZERO = Money.of(USD, BigDecimal.ZERO, MC);
 
-    private static MockedStatic<MoneyHelper> moneyHelper;
     private static LoanProductMinimumRepaymentScheduleRelatedDetail 
loanProductRelatedDetail;
 
     @BeforeAll
     static void init() {
-        moneyHelper = Mockito.mockStatic(MoneyHelper.class);
-        
moneyHelper.when(MoneyHelper::getRoundingMode).thenReturn(RoundingMode.HALF_EVEN);
-        moneyHelper.when(MoneyHelper::getMathContext).thenReturn(MC);
+        try (MockedStatic<MoneyHelper> moneyHelper = 
Mockito.mockStatic(MoneyHelper.class)) {
+            
moneyHelper.when(MoneyHelper::getRoundingMode).thenReturn(RoundingMode.HALF_EVEN);
+            moneyHelper.when(MoneyHelper::getMathContext).thenReturn(MC);
+        }
 
         loanProductRelatedDetail = 
mock(LoanProductMinimumRepaymentScheduleRelatedDetail.class);
         when(loanProductRelatedDetail.getCurrencyData()).thenReturn(USD);

Reply via email to