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

adamsaghy pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git


The following commit(s) were added to refs/heads/develop by this push:
     new d413e2b4af FINERACT-2421: Make "Business date configuration" reliable
d413e2b4af is described below

commit d413e2b4af87719a0772999c2bd38a173fa94642
Author: Adam Saghy <[email protected]>
AuthorDate: Tue Jan 13 16:31:00 2026 +0100

    FINERACT-2421: Make "Business date configuration" reliable
---
 .../base/BaseFineractInitializerConfiguration.java |  6 ++---
 .../test/initializer/base/FineractInitializer.java | 12 ++++-----
 .../BusinessDateInitializerStep.java}              | 30 +++++++++++++---------
 .../scenario/FineractScenarioInitializerStep.java  |  2 ++
 ...GlobalConfigurationScenarioInitializerStep.java |  6 +++++
 .../test/stepdef/hook/InitializingHook.java        | 10 ++++++--
 6 files changed, 42 insertions(+), 24 deletions(-)

diff --git 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/base/BaseFineractInitializerConfiguration.java
 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/base/BaseFineractInitializerConfiguration.java
index f1a624e970..269d3c9de0 100644
--- 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/base/BaseFineractInitializerConfiguration.java
+++ 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/base/BaseFineractInitializerConfiguration.java
@@ -20,7 +20,6 @@ package org.apache.fineract.test.initializer.base;
 
 import java.util.List;
 import org.apache.fineract.test.config.CacheConfiguration;
-import org.apache.fineract.test.helper.BusinessDateHelper;
 import 
org.apache.fineract.test.initializer.global.FineractGlobalInitializerStep;
 import 
org.apache.fineract.test.initializer.scenario.FineractScenarioInitializerStep;
 import org.apache.fineract.test.initializer.suite.FineractSuiteInitializerStep;
@@ -38,8 +37,7 @@ public class BaseFineractInitializerConfiguration {
 
     @Bean
     public FineractInitializer 
fineractInitializer(List<FineractGlobalInitializerStep> globalInitializerSteps,
-            List<FineractSuiteInitializerStep> suiteInitializerSteps, 
List<FineractScenarioInitializerStep> scenarioInitializerSteps,
-            BusinessDateHelper businessDateHelper) {
-        return new FineractInitializer(globalInitializerSteps, 
suiteInitializerSteps, scenarioInitializerSteps, businessDateHelper);
+            List<FineractSuiteInitializerStep> suiteInitializerSteps, 
List<FineractScenarioInitializerStep> scenarioInitializerSteps) {
+        return new FineractInitializer(globalInitializerSteps, 
suiteInitializerSteps, scenarioInitializerSteps);
     }
 }
diff --git 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/base/FineractInitializer.java
 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/base/FineractInitializer.java
index 383f1532d3..13d16d9127 100644
--- 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/base/FineractInitializer.java
+++ 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/base/FineractInitializer.java
@@ -22,7 +22,6 @@ import java.util.List;
 import java.util.stream.Collectors;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.fineract.test.helper.BusinessDateHelper;
 import 
org.apache.fineract.test.initializer.global.FineractGlobalInitializerStep;
 import 
org.apache.fineract.test.initializer.scenario.FineractScenarioInitializerStep;
 import org.apache.fineract.test.initializer.suite.FineractSuiteInitializerStep;
@@ -37,7 +36,6 @@ public class FineractInitializer implements InitializingBean {
     private final List<FineractGlobalInitializerStep> globalInitializerSteps;
     private final List<FineractSuiteInitializerStep> suiteInitializerSteps;
     private final List<FineractScenarioInitializerStep> 
scenarioInitializerSteps;
-    private final BusinessDateHelper businessDateHelper;
 
     @Override
     public void afterPropertiesSet() throws Exception {
@@ -71,7 +69,6 @@ public class FineractInitializer implements InitializingBean {
         for (FineractGlobalInitializerStep initializerStep : 
globalInitializerSteps) {
             initializerStep.initialize();
         }
-        businessDateHelper.setBusinessDateToday();
     }
 
     public void setupDefaultsForSuite() throws Exception {
@@ -80,20 +77,23 @@ public class FineractInitializer implements 
InitializingBean {
             log.debug("Executing suite initializer: {}", 
initializerStep.getClass().getName());
             initializerStep.initializeForSuite();
         }
-        businessDateHelper.setBusinessDateToday();
     }
 
     public void setupDefaultsForScenario() throws Exception {
         for (FineractScenarioInitializerStep scenarioInitializerStep : 
scenarioInitializerSteps) {
             scenarioInitializerStep.initializeForScenario();
         }
-        businessDateHelper.setBusinessDateToday();
     }
 
     public void resetDefaultsAfterSuite() throws Exception {
         for (FineractSuiteInitializerStep initializerStep : 
suiteInitializerSteps) {
             initializerStep.resetAfterSuite();
         }
-        businessDateHelper.setBusinessDateToday();
+    }
+
+    public void resetDefaultsAfterScenario() {
+        for (FineractScenarioInitializerStep initializerStep : 
scenarioInitializerSteps) {
+            initializerStep.resetAfterScenario();
+        }
     }
 }
diff --git 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/scenario/GlobalConfigurationScenarioInitializerStep.java
 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/global/BusinessDateInitializerStep.java
similarity index 55%
copy from 
fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/scenario/GlobalConfigurationScenarioInitializerStep.java
copy to 
fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/global/BusinessDateInitializerStep.java
index dac648df2e..d653620306 100644
--- 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/scenario/GlobalConfigurationScenarioInitializerStep.java
+++ 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/global/BusinessDateInitializerStep.java
@@ -16,29 +16,35 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.test.initializer.scenario;
+package org.apache.fineract.test.initializer.global;
 
-import static 
org.apache.fineract.test.initializer.global.GlobalConfigurationGlobalInitializerStep.CONFIG_KEY_ENABLE_ADDRESS;
 import static 
org.apache.fineract.test.initializer.global.GlobalConfigurationGlobalInitializerStep.CONFIG_KEY_ENABLE_BUSINESS_DATE;
-import static 
org.apache.fineract.test.initializer.global.GlobalConfigurationGlobalInitializerStep.CONFIG_KEY_ENABLE_RECALCULATE_COB_DATE;
 
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.fineract.test.helper.BusinessDateHelper;
 import org.apache.fineract.test.helper.GlobalConfigurationHelper;
+import 
org.apache.fineract.test.initializer.scenario.FineractScenarioInitializerStep;
 import org.springframework.stereotype.Component;
 
-@Component
+@Slf4j
 @RequiredArgsConstructor
-public class GlobalConfigurationScenarioInitializerStep implements 
FineractScenarioInitializerStep {
+@Component
+public class BusinessDateInitializerStep implements 
FineractScenarioInitializerStep {
 
-    private final GlobalConfigurationHelper globalConfigurationHelper;
+    private final BusinessDateHelper businessDateHelper;
+    private final GlobalConfigurationHelper configurationHelper;
 
     @Override
-    public void initializeForScenario() throws Exception {
-        // Enable-address set to false
-        
globalConfigurationHelper.disableGlobalConfiguration(CONFIG_KEY_ENABLE_ADDRESS, 
0L);
+    public void initializeForScenario() {
+        
configurationHelper.enableGlobalConfiguration(CONFIG_KEY_ENABLE_BUSINESS_DATE, 
0L);
+        businessDateHelper.setBusinessDateToday();
+    }
 
-        // Enable business date and COB date
-        
globalConfigurationHelper.enableGlobalConfiguration(CONFIG_KEY_ENABLE_BUSINESS_DATE,
 0L);
-        
globalConfigurationHelper.enableGlobalConfiguration(CONFIG_KEY_ENABLE_RECALCULATE_COB_DATE,
 0L);
+    @Override
+    public void resetAfterScenario() {
+        
configurationHelper.enableGlobalConfiguration(CONFIG_KEY_ENABLE_BUSINESS_DATE, 
0L);
+        businessDateHelper.setBusinessDateToday();
+        
configurationHelper.disableGlobalConfiguration(CONFIG_KEY_ENABLE_BUSINESS_DATE, 
0L);
     }
 }
diff --git 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/scenario/FineractScenarioInitializerStep.java
 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/scenario/FineractScenarioInitializerStep.java
index 0e433c30e2..c033b2a032 100644
--- 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/scenario/FineractScenarioInitializerStep.java
+++ 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/scenario/FineractScenarioInitializerStep.java
@@ -21,4 +21,6 @@ package org.apache.fineract.test.initializer.scenario;
 public interface FineractScenarioInitializerStep {
 
     void initializeForScenario() throws Exception;
+
+    void resetAfterScenario();
 }
diff --git 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/scenario/GlobalConfigurationScenarioInitializerStep.java
 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/scenario/GlobalConfigurationScenarioInitializerStep.java
index dac648df2e..3d6bad3875 100644
--- 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/scenario/GlobalConfigurationScenarioInitializerStep.java
+++ 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/initializer/scenario/GlobalConfigurationScenarioInitializerStep.java
@@ -41,4 +41,10 @@ public class GlobalConfigurationScenarioInitializerStep 
implements FineractScena
         
globalConfigurationHelper.enableGlobalConfiguration(CONFIG_KEY_ENABLE_BUSINESS_DATE,
 0L);
         
globalConfigurationHelper.enableGlobalConfiguration(CONFIG_KEY_ENABLE_RECALCULATE_COB_DATE,
 0L);
     }
+
+    @Override
+    public void resetAfterScenario() {
+        // Enable business date
+        
globalConfigurationHelper.disableGlobalConfiguration(CONFIG_KEY_ENABLE_BUSINESS_DATE,
 0L);
+    }
 }
diff --git 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/hook/InitializingHook.java
 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/hook/InitializingHook.java
index 4ea3cbde7b..40f875920a 100644
--- 
a/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/hook/InitializingHook.java
+++ 
b/fineract-e2e-tests-core/src/test/java/org/apache/fineract/test/stepdef/hook/InitializingHook.java
@@ -18,6 +18,7 @@
  */
 package org.apache.fineract.test.stepdef.hook;
 
+import io.cucumber.java.After;
 import io.cucumber.java.AfterAll;
 import io.cucumber.java.Before;
 import io.cucumber.java.BeforeAll;
@@ -38,10 +39,10 @@ public class InitializingHook {
         environment.getPropertySources().addFirst(new 
ResourcePropertySource("classpath:fineract-test-application.properties"));
         InitializerProperties initializerProperties = 
PropertiesFactory.get(environment, InitializerProperties.class);
         if (initializerProperties.isEnabled()) {
-            log.info("Setting up defaults for Fineract");
+            log.info("Setting up global defaults for Fineract");
             FineractInitializerFactory.get().setupGlobalDefaults();
         } else {
-            log.info("Skipping defaults for Fineract");
+            log.info("Skipping global defaults for Fineract");
         }
 
         FineractInitializerFactory.get().setupDefaultsForSuite();
@@ -52,6 +53,11 @@ public class InitializingHook {
         FineractInitializerFactory.get().setupDefaultsForScenario();
     }
 
+    @After
+    public static void after() throws Exception {
+        FineractInitializerFactory.get().resetDefaultsAfterScenario();
+    }
+
     @AfterAll
     public static void afterAll() throws Exception {
         FineractInitializerFactory.get().resetDefaultsAfterSuite();

Reply via email to