You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by vo...@apache.org on 2020/05/03 17:49:37 UTC

[fineract] 01/02: first step to clean up in SchedulerJobsTest (preparing for FINERACT-922)

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

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

commit 85bf8dc3e96a0db749457e9740734329d7e7fe29
Author: Michael Vorburger <mi...@vorburger.ch>
AuthorDate: Sun May 3 13:35:16 2020 +0200

    first step to clean up in SchedulerJobsTest (preparing for FINERACT-922)
    
    make two methods in SchedulerJobHelper private
    
    and start to un-static-ify SchedulerJobHelper
    
    This does NOT, yet, fix FINERACT-922.
---
 .../integrationtests/SchedulerJobsTest.java        | 66 +++++++++++-----------
 .../common/SchedulerJobHelper.java                 | 50 +++++++++-------
 2 files changed, 62 insertions(+), 54 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 6812198..6796af6 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
@@ -18,16 +18,18 @@
  */
 package org.apache.fineract.integrationtests;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+
 import io.restassured.builder.RequestSpecBuilder;
-import io.restassured.builder.ResponseSpecBuilder;
 import io.restassured.http.ContentType;
 import io.restassured.specification.RequestSpecification;
 import io.restassured.specification.ResponseSpecification;
-import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import org.apache.fineract.integrationtests.common.SchedulerJobHelper;
 import org.apache.fineract.integrationtests.common.Utils;
-import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -37,7 +39,6 @@ public class SchedulerJobsTest {
 
     private ResponseSpecification responseSpec;
     private RequestSpecification requestSpec;
-    private ResponseSpecification responseSpecForSchedulerJob;
     private SchedulerJobHelper schedulerJobHelper;
 
     @Before
@@ -46,41 +47,40 @@ public class SchedulerJobsTest {
         this.requestSpec = new RequestSpecBuilder().setContentType(ContentType.JSON).build();
         this.requestSpec.header("Authorization", "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey());
         this.requestSpec.header("Fineract-Platform-TenantId", "default");
-        this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
-        this.responseSpecForSchedulerJob = new ResponseSpecBuilder().expectStatusCode(202).build();
+        this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec);
     }
 
     @Test
-    @Ignore // TODO FINERACT-852
-    public void testSchedulerJobs() throws InterruptedException {
-        this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
-
+    public void testGetAndUpdateSchedulerStatus() throws InterruptedException {
         // Retrieving Status of Scheduler
-        HashMap schedulerStatus = this.schedulerJobHelper.getSchedulerStatus(this.requestSpec, this.responseSpec);
-        Boolean status = (Boolean) schedulerStatus.get("active");
-        if (status == true) {
-            this.schedulerJobHelper.updateSchedulerStatus(this.requestSpec, this.responseSpecForSchedulerJob, "stop");
-            schedulerStatus = this.schedulerJobHelper.getSchedulerStatus(this.requestSpec, this.responseSpec);
-            // Verifying Status of the Scheduler after updation
-            Assert.assertEquals("Verifying Scheduler Job Status", false, schedulerStatus.get("active"));
+        Boolean schedulerStatus = this.schedulerJobHelper.getSchedulerStatus();
+        if (schedulerStatus == true) {
+            this.schedulerJobHelper.updateSchedulerStatus("stop");
+            schedulerStatus = this.schedulerJobHelper.getSchedulerStatus();
+            // Verifying Status of the Scheduler after stopping
+            assertEquals("Verifying Scheduler Job Status", false, schedulerStatus);
         } else {
-            this.schedulerJobHelper.updateSchedulerStatus(this.requestSpec, this.responseSpecForSchedulerJob, "start");
-            schedulerStatus = this.schedulerJobHelper.getSchedulerStatus(this.requestSpec, this.responseSpec);
-            // Verifying Status of the Scheduler after updation
-            Assert.assertEquals("Verifying Scheduler Job Status", true, schedulerStatus.get("active"));
+            this.schedulerJobHelper.updateSchedulerStatus("start");
+            schedulerStatus = this.schedulerJobHelper.getSchedulerStatus();
+            // Verifying Status of the Scheduler after starting
+            assertEquals("Verifying Scheduler Job Status", true, schedulerStatus);
         }
+    }
 
+    @Test
+    @Ignore // TODO FINERACT-852
+    public void testSchedulerJobs() throws InterruptedException {
         // Retrieving All Scheduler Jobs
-        ArrayList<HashMap> allSchedulerJobsData = this.schedulerJobHelper.getAllSchedulerJobs(this.requestSpec, this.responseSpec);
-        Assert.assertNotNull(allSchedulerJobsData);
+        List<Map> allSchedulerJobsData = this.schedulerJobHelper.getAllSchedulerJobs(this.requestSpec, this.responseSpec);
+        assertNotNull(allSchedulerJobsData);
 
         for (Integer jobIndex = 0; jobIndex < allSchedulerJobsData.size(); jobIndex++) {
 
             Integer jobId = (Integer) allSchedulerJobsData.get(jobIndex).get("jobId");
 
             // Retrieving Scheduler Job by ID
-            HashMap schedulerJob = this.schedulerJobHelper.getSchedulerJobById(this.requestSpec, this.responseSpec, jobId.toString());
-            Assert.assertNotNull(schedulerJob);
+            Map schedulerJob = this.schedulerJobHelper.getSchedulerJobById(this.requestSpec, this.responseSpec, jobId.toString());
+            assertNotNull(schedulerJob);
 
             Boolean active = (Boolean) schedulerJob.get("active");
 
@@ -91,31 +91,31 @@ public class SchedulerJobsTest {
             }
 
             // Updating Scheduler Job
-            HashMap changes = this.schedulerJobHelper.updateSchedulerJob(this.requestSpec, this.responseSpec, jobId.toString(),
+            Map changes = this.schedulerJobHelper.updateSchedulerJob(this.requestSpec, this.responseSpec, jobId.toString(),
                     active.toString());
             // Verifying Scheduler Job updates
-            Assert.assertEquals("Verifying Scheduler Job Updates", active, changes.get("active"));
+            assertEquals("Verifying Scheduler Job Updates", active, changes.get("active"));
 
             // Executing Scheduler Job
             this.schedulerJobHelper.runSchedulerJob(this.requestSpec, jobId.toString());
 
             // Retrieving Scheduler Job by ID
             schedulerJob = this.schedulerJobHelper.getSchedulerJobById(this.requestSpec, this.responseSpec, jobId.toString());
-            Assert.assertNotNull(schedulerJob);
+            assertNotNull(schedulerJob);
 
             // Waiting for Job to complete
             while ((Boolean) schedulerJob.get("currentlyRunning") == true) {
                 Thread.sleep(15000);
                 schedulerJob = this.schedulerJobHelper.getSchedulerJobById(this.requestSpec, this.responseSpec, jobId.toString());
-                Assert.assertNotNull(schedulerJob);
+                assertNotNull(schedulerJob);
                 System.out.println("Job " +jobId.toString() +" is Still Running");
             }
-            ArrayList<HashMap> jobHistoryData = this.schedulerJobHelper.getSchedulerJobHistory(this.requestSpec, this.responseSpec,
+            List<Map> jobHistoryData = this.schedulerJobHelper.getSchedulerJobHistory(this.requestSpec, this.responseSpec,
                     jobId.toString());
 
             // Verifying the Status of the Recently executed Scheduler Job
-            Assert.assertFalse("Job History is empty :(  Was it too slow? Failures in background job?", jobHistoryData.isEmpty());
-            Assert.assertEquals("Verifying Last Scheduler Job Status", "success",
+            assertFalse("Job History is empty :(  Was it too slow? Failures in background job?", jobHistoryData.isEmpty());
+            assertEquals("Verifying Last Scheduler Job Status", "success",
                     jobHistoryData.get(jobHistoryData.size() - 1).get("status"));
         }
     }
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 70a7e23..4cbba54 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
@@ -25,20 +25,29 @@ import io.restassured.specification.ResponseSpecification;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import org.junit.Assert;
 
 @SuppressWarnings({ "rawtypes", "unchecked" })
 public class SchedulerJobHelper {
 
     private final RequestSpecification requestSpec;
-    private final ResponseSpecification responseSpec;
+    private final ResponseSpecification response200Spec;
+    private final ResponseSpecification response202Spec;
+
+    public SchedulerJobHelper(final RequestSpecification requestSpec) {
+        this.requestSpec = requestSpec;
+        this.response200Spec = new ResponseSpecBuilder().expectStatusCode(200).build();
+        this.response202Spec = new ResponseSpecBuilder().expectStatusCode(202).build();
+    }
 
     public SchedulerJobHelper(final RequestSpecification requestSpec, final ResponseSpecification responseSpec) {
         this.requestSpec = requestSpec;
-        this.responseSpec = responseSpec;
+        this.response200Spec = responseSpec;
+        this.response202Spec = responseSpec;
     }
 
-    public static ArrayList getAllSchedulerJobs(final RequestSpecification requestSpec, final ResponseSpecification responseSpec) {
+    public static List getAllSchedulerJobs(final RequestSpecification requestSpec, final ResponseSpecification responseSpec) {
         final String GET_ALL_SCHEDULER_JOBS_URL = "/fineract-provider/api/v1/jobs?" + Utils.TENANT_IDENTIFIER;
         System.out.println("------------------------ RETRIEVING ALL SCHEDULER JOBS -------------------------");
         final ArrayList response = Utils.performServerGet(requestSpec, responseSpec, GET_ALL_SCHEDULER_JOBS_URL, "");
@@ -53,41 +62,40 @@ public class SchedulerJobHelper {
         return response;
     }
 
-    public static HashMap getSchedulerStatus(final RequestSpecification requestSpec, final ResponseSpecification responseSpec) {
+    public Boolean getSchedulerStatus() {
         final String GET_SCHEDULER_STATUS_URL = "/fineract-provider/api/v1/scheduler?" + Utils.TENANT_IDENTIFIER;
         System.out.println("------------------------ RETRIEVING SCHEDULER STATUS -------------------------");
-        final HashMap response = Utils.performServerGet(requestSpec, responseSpec, GET_SCHEDULER_STATUS_URL, "");
-        return response;
+        final Map<String, Object> response = Utils.performServerGet(requestSpec, response200Spec, GET_SCHEDULER_STATUS_URL, "");
+        return (Boolean) response.get("active");
     }
 
-    public static void updateSchedulerStatus(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
-            final String command) {
+    public void updateSchedulerStatus(final String command) {
         final String UPDATE_SCHEDULER_STATUS_URL = "/fineract-provider/api/v1/scheduler?command=" + command + "&" + Utils.TENANT_IDENTIFIER;
         System.out.println("------------------------ UPDATING SCHEDULER STATUS -------------------------");
-        Utils.performServerPost(requestSpec, responseSpec, UPDATE_SCHEDULER_STATUS_URL, runSchedulerJobAsJSON(), null);
+        Utils.performServerPost(requestSpec, response202Spec, UPDATE_SCHEDULER_STATUS_URL, runSchedulerJobAsJSON(), null);
     }
 
-    public static HashMap updateSchedulerJob(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
+    public static Map updateSchedulerJob(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
             final String jobId, final String active) {
         final String UPDATE_SCHEDULER_JOB_URL = "/fineract-provider/api/v1/jobs/" + jobId + "?" + Utils.TENANT_IDENTIFIER;
         System.out.println("------------------------ UPDATING SCHEDULER JOB -------------------------");
-        final HashMap response = Utils.performServerPut(requestSpec, responseSpec, UPDATE_SCHEDULER_JOB_URL,
+        final Map response = Utils.performServerPut(requestSpec, responseSpec, UPDATE_SCHEDULER_JOB_URL,
                 updateSchedulerJobAsJSON(active), "changes");
         return response;
     }
 
-    public static String updateSchedulerJobAsJSON(final String active) {
-        final HashMap<String, String> map = new HashMap<>();
+    private static String updateSchedulerJobAsJSON(final String active) {
+        final Map<String, String> map = new HashMap<>();
         map.put("active", active);
         System.out.println("map : " + map);
         return new Gson().toJson(map);
     }
 
-    public static ArrayList getSchedulerJobHistory(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
+    public static List getSchedulerJobHistory(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
             final String jobId) {
         final String GET_SCHEDULER_STATUS_URL = "/fineract-provider/api/v1/jobs/" + jobId + "/runhistory?" + Utils.TENANT_IDENTIFIER;
         System.out.println("------------------------ RETRIEVING SCHEDULER JOB HISTORY -------------------------");
-        final HashMap response = Utils.performServerGet(requestSpec, responseSpec, GET_SCHEDULER_STATUS_URL, "");
+        final Map response = Utils.performServerGet(requestSpec, responseSpec, GET_SCHEDULER_STATUS_URL, "");
         return (ArrayList) response.get("pageItems");
     }
 
@@ -98,15 +106,15 @@ public class SchedulerJobHelper {
         Utils.performServerPost(requestSpec, responseSpec, RUN_SCHEDULER_JOB_URL, runSchedulerJobAsJSON(), null);
     }
 
-    public static String runSchedulerJobAsJSON() {
-        final HashMap<String, String> map = new HashMap<>();
+    private static String runSchedulerJobAsJSON() {
+        final Map<String, String> map = new HashMap<>();
         String runSchedulerJob = new Gson().toJson(map);
         System.out.println(runSchedulerJob);
         return runSchedulerJob;
     }
 
     public void executeJob(String jobName) throws InterruptedException {
-        ArrayList<HashMap> allSchedulerJobsData = getAllSchedulerJobs(this.requestSpec, this.responseSpec);
+        List<Map> allSchedulerJobsData = getAllSchedulerJobs(this.requestSpec, this.response200Spec);
         Assert.assertNotNull(allSchedulerJobsData);
 
         for (Integer jobIndex = 0; jobIndex < allSchedulerJobsData.size(); jobIndex++) {
@@ -117,18 +125,18 @@ public class SchedulerJobHelper {
                 runSchedulerJob(this.requestSpec, jobId.toString());
 
                 // Retrieving Scheduler Job by ID
-                HashMap schedulerJob = getSchedulerJobById(this.requestSpec, this.responseSpec, jobId.toString());
+                Map schedulerJob = getSchedulerJobById(this.requestSpec, this.response200Spec, jobId.toString());
                 Assert.assertNotNull(schedulerJob);
 
                 // Waiting for Job to complete
                 while ((Boolean) schedulerJob.get("currentlyRunning") == true) {
                     Thread.sleep(15000);
-                    schedulerJob = getSchedulerJobById(this.requestSpec, this.responseSpec, jobId.toString());
+                    schedulerJob = getSchedulerJobById(this.requestSpec, this.response200Spec, jobId.toString());
                     Assert.assertNotNull(schedulerJob);
                     System.out.println("Job is Still Running");
                 }
 
-                List<HashMap> jobHistoryData = getSchedulerJobHistory(this.requestSpec, this.responseSpec, jobId.toString());
+                List<Map> jobHistoryData = getSchedulerJobHistory(this.requestSpec, this.response200Spec, jobId.toString());
 
                 Assert.assertFalse("Job History is empty :(  Was it too slow? Failures in background job?", jobHistoryData.isEmpty());