FINERACT-1724: Performance improvement of global configuration helper (for integration tests)

This commit is contained in:
Adam Saghy
2022-12-16 16:41:55 +01:00
parent 70f2783508
commit 1405b28d71
@@ -67,15 +67,22 @@ public class GlobalConfigurationHelper {
public static void resetAllDefaultGlobalConfigurations(final RequestSpecification requestSpec, public static void resetAllDefaultGlobalConfigurations(final RequestSpecification requestSpec,
final ResponseSpecification responseSpec) { final ResponseSpecification responseSpec) {
ArrayList<HashMap> actualGlobalConfigurations = getAllGlobalConfigurations(requestSpec, responseSpec);
final ArrayList<HashMap> defaults = getAllDefaultGlobalConfigurations(); final ArrayList<HashMap> defaults = getAllDefaultGlobalConfigurations();
for (HashMap configDefault : defaults) { int changedNo = 0;
for (int i = 0; i < actualGlobalConfigurations.size(); i++) {
HashMap defaultGlobalConfiguration = defaults.get(i);
HashMap actualGlobalConfiguration = actualGlobalConfigurations.get(i);
if (!isMatching(defaultGlobalConfiguration, actualGlobalConfiguration)) {
/** /**
* Cannot update trapDoor global configurations because * Cannot update trapDoor global configurations because
* {@link org.apache.fineract.infrastructure.configuration.exception.GlobalConfigurationPropertyCannotBeModfied} * {@link org.apache.fineract.infrastructure.configuration.exception.GlobalConfigurationPropertyCannotBeModfied}
* will be thrown. * will be thrown.
*/ */
if ((Boolean) configDefault.get("trapDoor")) { if ((Boolean) defaultGlobalConfiguration.get("trapDoor")) {
continue; continue;
} }
@@ -83,14 +90,23 @@ public class GlobalConfigurationHelper {
// integration test suite. // integration test suite.
// If any other column is modified by the integration test suite in // If any other column is modified by the integration test suite in
// the future, it needs to be reset here. // the future, it needs to be reset here.
final Integer configDefaultId = (Integer) configDefault.get("id"); final Integer configDefaultId = (Integer) defaultGlobalConfiguration.get("id");
final Integer configDefaultValue = (Integer) configDefault.get("value"); final Integer configDefaultValue = (Integer) defaultGlobalConfiguration.get("value");
updateValueForGlobalConfiguration(requestSpec, responseSpec, configDefaultId.toString(), configDefaultValue.toString()); updateValueForGlobalConfiguration(requestSpec, responseSpec, configDefaultId.toString(), configDefaultValue.toString());
updateEnabledFlagForGlobalConfiguration(requestSpec, responseSpec, configDefaultId.toString(), updateEnabledFlagForGlobalConfiguration(requestSpec, responseSpec, configDefaultId.toString(),
(Boolean) configDefault.get("enabled")); (Boolean) defaultGlobalConfiguration.get("enabled"));
changedNo++;
} }
} }
log.info("--------------------------------- UPDATED GLOBAL CONFIG ENTRY SIZE: {} ---------------------------------------------",
changedNo);
}
private static boolean isMatching(HashMap o1, HashMap o2) {
return o1.get("id").equals(o2.get("id")) && o1.get("name").equals(o2.get("name")) && o1.get("value").equals(o2.get("value"))
&& o1.get("enabled").equals(o2.get("enabled")) && o1.get("trapDoor").equals(o2.get("trapDoor"));
}
public static void verifyAllDefaultGlobalConfigurations(final RequestSpecification requestSpec, public static void verifyAllDefaultGlobalConfigurations(final RequestSpecification requestSpec,
final ResponseSpecification responseSpec) { final ResponseSpecification responseSpec) {