From e0d4a1f376e241f0acd48db26b2557574ccd8422 Mon Sep 17 00:00:00 2001 From: Michael Vorburger Date: Sat, 9 May 2020 02:31:03 +0200 Subject: [PATCH] make SchedulerJobsTest preserve scheduler and job states (FINERACT-922) --- .../integrationtests/SchedulerJobsTest.java | 23 +++++++++++++++++-- .../common/SchedulerJobHelper.java | 6 ++--- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SchedulerJobsTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SchedulerJobsTest.java index fd49a7124..21181521e 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SchedulerJobsTest.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SchedulerJobsTest.java @@ -27,10 +27,13 @@ import io.restassured.builder.RequestSpecBuilder; import io.restassured.http.ContentType; import io.restassured.specification.RequestSpecification; import java.time.format.DateTimeFormatter; +import java.util.HashMap; import java.util.List; import java.util.Map; +import org.apache.fineract.infrastructure.jobs.service.JobName; import org.apache.fineract.integrationtests.common.SchedulerJobHelper; import org.apache.fineract.integrationtests.common.Utils; +import org.junit.After; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; @@ -39,6 +42,8 @@ public class SchedulerJobsTest { private RequestSpecification requestSpec; private SchedulerJobHelper schedulerJobHelper; + private Boolean originalSchedulerStatus; + private final Map originalJobStatus = new HashMap<>(); @Before public void setup() { @@ -47,6 +52,20 @@ public class SchedulerJobsTest { requestSpec.header("Authorization", "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey()); requestSpec.header("Fineract-Platform-TenantId", "default"); schedulerJobHelper = new SchedulerJobHelper(requestSpec); + originalSchedulerStatus = schedulerJobHelper.getSchedulerStatus(); + for (Integer jobId : schedulerJobHelper.getAllSchedulerJobIds()) { + Map schedulerJob = schedulerJobHelper.getSchedulerJobById(jobId); + Boolean active = (Boolean) schedulerJob.get("active"); + originalJobStatus.put(jobId, active); + } + } + + @After + public void tearDown() { + schedulerJobHelper.updateSchedulerStatus(originalSchedulerStatus); + for (int jobId = 1; jobId < JobName.values().length; jobId++) { + schedulerJobHelper.updateSchedulerJob(jobId, originalJobStatus.get(jobId)); + } } @Test // FINERACT-926 @@ -54,7 +73,7 @@ public class SchedulerJobsTest { // must start scheduler and make job active to have nextRunTime (which is a // java.util.Date) schedulerJobHelper.updateSchedulerStatus(true); - schedulerJobHelper.updateSchedulerJob(1, "true"); + schedulerJobHelper.updateSchedulerJob(1, true); String nextRunTimeText = await().until( () -> (String) schedulerJobHelper.getSchedulerJobById(1).get("nextRunTime"), nextRunTime -> nextRunTime != null); @@ -93,7 +112,7 @@ public class SchedulerJobsTest { active = !active; // Updating Scheduler Job - Map changes = schedulerJobHelper.updateSchedulerJob(jobId, active.toString()); + Map changes = schedulerJobHelper.updateSchedulerJob(jobId, active); // Verifying Scheduler Job updates assertEquals("Verifying Scheduler Job Updates", active, changes.get("active")); diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/SchedulerJobHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/SchedulerJobHelper.java index 027b15a5f..8382ca7fd 100644 --- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/SchedulerJobHelper.java +++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/SchedulerJobHelper.java @@ -88,7 +88,7 @@ public class SchedulerJobHelper { Utils.performServerPost(requestSpec, response202Spec, UPDATE_SCHEDULER_STATUS_URL, runSchedulerJobAsJSON(), null); } - public Map updateSchedulerJob(int jobId, final String active) { + public Map updateSchedulerJob(int jobId, final boolean active) { final String UPDATE_SCHEDULER_JOB_URL = "/fineract-provider/api/v1/jobs/" + jobId + "?" + Utils.TENANT_IDENTIFIER; LOG.info("------------------------ UPDATING SCHEDULER JOB -------------------------"); final Map response = Utils.performServerPut(requestSpec, response200Spec, UPDATE_SCHEDULER_JOB_URL, @@ -96,9 +96,9 @@ public class SchedulerJobHelper { return response; } - private static String updateSchedulerJobAsJSON(final String active) { + private static String updateSchedulerJobAsJSON(final boolean active) { final Map map = new HashMap<>(); - map.put("active", active); + map.put("active", Boolean.toString(active)); LOG.info("map : {}" , map); return new Gson().toJson(map); }