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/06/20 20:29:59 UTC
[fineract] branch develop updated: FINERACT-1040 Re-enabling and
fixing CampaignTests
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
The following commit(s) were added to refs/heads/develop by this push:
new f3862bc FINERACT-1040 Re-enabling and fixing CampaignTests
f3862bc is described below
commit f3862bca8baaab4ad5666af5820edddc091438f5
Author: Petri Tuomola <pe...@tuomola.org>
AuthorDate: Wed Jun 17 10:37:36 2020 +0300
FINERACT-1040 Re-enabling and fixing CampaignTests
---
fineract-provider/build.gradle | 1 +
fineract-provider/dependencies.gradle | 4 ++
.../common/organisation/CampaignsHelper.java | 17 ++------
.../common/organisation/CampaignsTest.java | 47 +++++++++++++++++-----
.../integrationtests/common/report/ReportData.java | 14 ++++---
.../classdupes/ClasspathHellDuplicatesChecker.java | 18 ++-------
6 files changed, 58 insertions(+), 43 deletions(-)
diff --git a/fineract-provider/build.gradle b/fineract-provider/build.gradle
index 2f0e674..45df9b9 100644
--- a/fineract-provider/build.gradle
+++ b/fineract-provider/build.gradle
@@ -114,6 +114,7 @@ dependencyManagement {
dependency 'org.awaitility:awaitility:4.0.3'
dependency 'com.github.spotbugs:spotbugs-annotations:4.0.4'
dependency 'javax.cache:cache-api:1.1.1'
+ dependency 'org.mock-server:mockserver-junit-jupiter:5.10'
// If this is upgraded, you need to change path in WebFrontEndConfiguration
dependency 'org.webjars.npm:swagger-ui-dist:3.27.0'
diff --git a/fineract-provider/dependencies.gradle b/fineract-provider/dependencies.gradle
index 80264da..9f42553 100644
--- a/fineract-provider/dependencies.gradle
+++ b/fineract-provider/dependencies.gradle
@@ -124,6 +124,10 @@ dependencies {
'io.github.classgraph:classgraph',
'org.awaitility:awaitility'
)
+ testImplementation('org.mock-server:mockserver-junit-jupiter') {
+ exclude group: 'com.sun.mail', module: 'mailapi'
+ exclude group: 'javax.servlet', module: 'javax.servlet-api'
+ }
testImplementation ('io.rest-assured:rest-assured') {
exclude group: 'commons-logging'
exclude group: 'org.apache.sling'
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/organisation/CampaignsHelper.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/organisation/CampaignsHelper.java
index 580f60e..056c6a5 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/organisation/CampaignsHelper.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/organisation/CampaignsHelper.java
@@ -22,12 +22,9 @@ import static io.restassured.RestAssured.given;
import static org.junit.jupiter.api.Assertions.assertEquals;
import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
import io.restassured.path.json.JsonPath;
import io.restassured.specification.RequestSpecification;
import io.restassured.specification.ResponseSpecification;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.apache.fineract.integrationtests.common.Utils;
@@ -166,28 +163,22 @@ public class CampaignsHelper {
return json;
}
- public ArrayList<ReportData> getReports() {
+ public List<ReportData> getReports() {
return getReports(BUSINESS_RULE_OPTIONS);
}
- private ArrayList<ReportData> getReports(String jsonAttributeToGetBack) {
+ private List<ReportData> getReports(String jsonAttributeToGetBack) {
LOG.info("--------------------------------- GET REPORTS OPTIONS -------------------------------");
Assert.notNull(jsonAttributeToGetBack, "jsonAttributeToGetBack may not be null");
final String templateUrl = SMS_CAMPAIGNS_URL + "/template?" + Utils.TENANT_IDENTIFIER;
final String json = given().spec(requestSpec).expect().spec(responseSpec).log().ifError().when().get(templateUrl).andReturn()
.asString();
Assert.notNull(json, "json");
- ArrayList<ReportData> reportsList = new ArrayList<>();
- String reportsString = new Gson().toJson(JsonPath.from(json).get(jsonAttributeToGetBack));
- Assert.notNull(reportsString, "reportsString");
- final Gson gson = new Gson();
- final Type typeOfHashMap = new TypeToken<List<ReportData>>() {}.getType();
- reportsList = gson.fromJson(reportsString, typeOfHashMap);
- return reportsList;
+ return JsonPath.from(json).getList(jsonAttributeToGetBack, ReportData.class);
}
private Long getSelectedReportId(final String reportName) {
- ArrayList<ReportData> reports = getReports();
+ List<ReportData> reports = getReports();
if (reports != null && !reports.isEmpty()) {
for (ReportData reportData : reports) {
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/organisation/CampaignsTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/organisation/CampaignsTest.java
index bf83042..135c537 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/organisation/CampaignsTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/organisation/CampaignsTest.java
@@ -19,6 +19,8 @@
package org.apache.fineract.integrationtests.common.organisation;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockserver.model.HttpRequest.request;
+import static org.mockserver.model.HttpResponse.response;
import io.restassured.builder.RequestSpecBuilder;
import io.restassured.builder.ResponseSpecBuilder;
@@ -30,10 +32,16 @@ import java.util.HashMap;
import org.apache.fineract.integrationtests.common.CommonConstants;
import org.apache.fineract.integrationtests.common.Utils;
import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockserver.integration.ClientAndServer;
+import org.mockserver.junit.jupiter.MockServerExtension;
+import org.mockserver.junit.jupiter.MockServerSettings;
+import org.mockserver.model.MediaType;
+
+@ExtendWith(MockServerExtension.class)
+@MockServerSettings(ports = { 9191 })
-@Disabled
public class CampaignsTest {
private RequestSpecification requestSpec;
@@ -53,6 +61,25 @@ public class CampaignsTest {
public static final String DATE_FORMAT = "dd MMMM yyyy";
+ private final ClientAndServer client;
+
+ public CampaignsTest(ClientAndServer client) {
+ this.client = client;
+
+ // Set up mock server for message-gateway
+ this.client.when(request().withMethod("GET").withPath("/smsbridges"))
+ .respond(response().withContentType(MediaType.APPLICATION_JSON).withBody("[\n" + //
+ " {\n" + //
+ " \"id\": 1,\n" + //
+ " \"tenantId\": 1,\n" + //
+ " \"phoneNo\": \"+1234567890\",\n" + //
+ " \"providerName\": \"Dummy SMS Provider - Testing\",\n" + //
+ " \"providerDescription\": \"Dummy, just for testing\"\n" + //
+ " }\n" + //
+ "]") //
+ );
+ }
+
@BeforeEach
public void setup() {
Utils.initializeRESTAssured();
@@ -177,11 +204,11 @@ public class CampaignsTest {
this.campaignsHelper.verifyCampaignCreatedOnServer(this.requestSpec, this.responseSpec, campaignId);
// activating campaign with failure
- ArrayList<HashMap> campaignDateValidationData = (ArrayList<HashMap>) campaignsHelperWithError.performActionsOnCampaignWithFailure(
- campaignId, ACTIVATE_COMMAND, Utils.getLocalDateOfTenant().plusDays(1).toString(DATE_FORMAT),
- CommonConstants.RESPONSE_ERROR);
+ ArrayList<HashMap<String, Object>> campaignDateValidationData = (ArrayList<HashMap<String, Object>>) campaignsHelperWithError
+ .performActionsOnCampaignWithFailure(campaignId, ACTIVATE_COMMAND,
+ Utils.getLocalDateOfTenant().plusDays(1).toString(DATE_FORMAT), CommonConstants.RESPONSE_ERROR);
assertEquals("error.msg.campaign.activationDate.in.the.future",
- ((HashMap<String, Object>) campaignDateValidationData.get(0)).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
+ campaignDateValidationData.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
// activating campaign
Integer activatedCampaignId = this.campaignsHelper.performActionsOnCampaign(this.requestSpec, this.responseSpec, campaignId,
@@ -189,10 +216,10 @@ public class CampaignsTest {
assertEquals(activatedCampaignId, campaignId);
// activating campaign with failure
- ArrayList<HashMap> campaignErrorData = (ArrayList<HashMap>) campaignsHelperWithError.performActionsOnCampaignWithFailure(
- activatedCampaignId, ACTIVATE_COMMAND, Utils.getLocalDateOfTenant().toString(DATE_FORMAT), CommonConstants.RESPONSE_ERROR);
- assertEquals("error.msg.campaign.already.active",
- ((HashMap<String, Object>) campaignErrorData.get(0)).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
+ ArrayList<HashMap<String, Object>> campaignErrorData = (ArrayList<HashMap<String, Object>>) campaignsHelperWithError
+ .performActionsOnCampaignWithFailure(activatedCampaignId, ACTIVATE_COMMAND,
+ Utils.getLocalDateOfTenant().toString(DATE_FORMAT), CommonConstants.RESPONSE_ERROR);
+ assertEquals("error.msg.campaign.already.active", campaignErrorData.get(0).get(CommonConstants.RESPONSE_ERROR_MESSAGE_CODE));
// closing campaign again for deletion
Integer closedCampaignId = this.campaignsHelper.performActionsOnCampaign(this.requestSpec, this.responseSpec, campaignId,
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/report/ReportData.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/report/ReportData.java
index 800a846..f35abb3 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/report/ReportData.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/common/report/ReportData.java
@@ -22,17 +22,19 @@ import java.util.Map;
public class ReportData {
- private final Long reportId;
+ private Long reportId;
- private final String reportName;
+ private String reportName;
- private final String reportType;
+ private String reportType;
- private final String reportSubType;
+ private String reportSubType;
- private final String reportDescription;
+ private String reportDescription;
- private final Map<String, Object> reportParamName;
+ private Map<String, Object> reportParamName;
+
+ public ReportData() {}
public ReportData(final Long reportId, final String reportName, final String reportType, final String reportSubType,
final Map<String, Object> reportParamName, final String reportDescription) {
diff --git a/fineract-provider/src/test/java/org/apache/fineract/infrastructure/classdupes/ClasspathHellDuplicatesChecker.java b/fineract-provider/src/test/java/org/apache/fineract/infrastructure/classdupes/ClasspathHellDuplicatesChecker.java
index 88f86f2..d7e05e2 100644
--- a/fineract-provider/src/test/java/org/apache/fineract/infrastructure/classdupes/ClasspathHellDuplicatesChecker.java
+++ b/fineract-provider/src/test/java/org/apache/fineract/infrastructure/classdupes/ClasspathHellDuplicatesChecker.java
@@ -89,20 +89,7 @@ public class ClasspathHellDuplicatesChecker {
private boolean skipJAR(String jarPath) {
// ./gradlew test finds classes from the Gradle Wrapper (which don't
// show up in-IDE), exclude those
- return jarPath.contains("/.gradle/wrapper/dists/") || jarPath.contains("/io.rest-assured/"); // TODO
- // FINERACT-884
- // remove
- // when
- // RestAssured
- // was
- // bumped
- // from
- // 3.3.0
- // to
- // 4.3.0
- // in
- // Spring
- // BOM
+ return jarPath.contains("/.gradle/wrapper/dists/");
}
protected boolean isHarmlessDuplicate(String resourcePath) {
@@ -121,6 +108,9 @@ public class ClasspathHellDuplicatesChecker {
|| resourcePath.startsWith("org/opendaylight/blueprint/") || resourcePath.endsWith("reference.conf") // in
// Akka's
// JARs
+ // json-schema-core and json-schema-validator depend on each
+ // other and include these files
+ || resourcePath.equals("draftv4/schema") || resourcePath.equals("draftv3/schema") //
|| resourcePath.equals("WEB-INF/web.xml") || resourcePath.equals("META-INF/web-fragment.xml")
|| resourcePath.equals("META-INF/eclipse.inf") || resourcePath.equals("META-INF/ECLIPSE_.SF")
|| resourcePath.equals("META-INF/ECLIPSE_.RSA") || resourcePath.equals("META-INF/BC2048KE.DSA")