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