Skip to content

Commit 642e5e5

Browse files
authored
Replace mockmvc in rule-check (#148)
* Replacing mockmvc in rule-check
1 parent 0cb7108 commit 642e5e5

File tree

1 file changed

+42
-26
lines changed

1 file changed

+42
-26
lines changed

src/functionaltests/java/com/ericsson/ei/rules/RuleCheckSteps.java

Lines changed: 42 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,43 +2,42 @@
22

33
import com.ericsson.ei.controller.RuleCheckController;
44
import com.ericsson.ei.utils.FunctionalTestBase;
5+
import com.ericsson.ei.utils.HttpRequest;
6+
import com.ericsson.ei.utils.HttpRequest.HttpMethod;
7+
58
import cucumber.api.java.en.Given;
69
import cucumber.api.java.en.Then;
710
import cucumber.api.java.en.When;
11+
812
import org.apache.commons.io.FileUtils;
913
import org.json.JSONArray;
1014
import org.json.JSONObject;
15+
import org.json.JSONTokener;
1116
import org.junit.Ignore;
1217
import org.springframework.beans.factory.annotation.Autowired;
13-
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
14-
import org.springframework.http.MediaType;
18+
import org.springframework.boot.web.server.LocalServerPort;
19+
import org.springframework.http.ResponseEntity;
1520
import org.springframework.test.util.ReflectionTestUtils;
16-
import org.springframework.test.web.servlet.MockMvc;
17-
import org.springframework.test.web.servlet.MvcResult;
18-
1921
import java.io.File;
20-
2122
import static org.junit.Assert.assertEquals;
2223
import static org.skyscreamer.jsonassert.JSONAssert.assertEquals;
23-
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
2424

2525
@Ignore
26-
@AutoConfigureMockMvc
2726
public class RuleCheckSteps extends FunctionalTestBase {
2827

2928
private static final String TEST_RESOURCES_PATH = "src/test/resources";
3029

3130
@Autowired
3231
private RuleCheckController ruleCheckController;
3332

34-
@Autowired
35-
private MockMvc mockMvc;
36-
37-
private MvcResult mvcResult;
38-
3933
private String rules;
4034
private String events;
4135

36+
@LocalServerPort
37+
private int applicationPort;
38+
private String hostName = getHostName();
39+
private ResponseEntity response;
40+
4241
@Given("^rules checking is enabled$")
4342
public void rules_checking_is_enabled() throws Throwable {
4443
ReflectionTestUtils.setField(ruleCheckController, "testEnable", true);
@@ -57,12 +56,15 @@ public void file_with_JMESPath_rules_and_file_with_events(String rulesFileName,
5756

5857
@When("^make a POST request to the REST API \"([^\"]*)\" with request parameter \"([^\"]*)\"$")
5958
public void make_a_POST_request_to_the_REST_API_with_request_parameter(String endpoint, String requestParam) throws Throwable {
60-
mvcResult = mockMvc.perform(post(endpoint)
61-
.param(requestParam, rules)
62-
.accept(MediaType.APPLICATION_JSON)
63-
.content(events)
64-
.contentType(MediaType.APPLICATION_JSON))
65-
.andReturn();
59+
HttpRequest postRequest = new HttpRequest(HttpMethod.POST);
60+
response = postRequest.setPort(applicationPort)
61+
.setHost(hostName)
62+
.setHeaders("content-type", "application/json")
63+
.setHeaders("Accept", "application/json")
64+
.setEndpoint(endpoint)
65+
.setBody(events)
66+
.setParam(requestParam, rules)
67+
.performRequest();
6668
}
6769

6870
@When("^make a POST request to the REST API \"([^\"]*)\"$")
@@ -71,22 +73,36 @@ public void make_a_POST_request_to_the_REST_API(String endpoint) throws Throwabl
7173
.put("listRulesJson", new JSONArray(rules))
7274
.put("listEventsJson", new JSONArray(events))
7375
.toString();
74-
mvcResult = mockMvc.perform(post(endpoint)
75-
.accept(MediaType.APPLICATION_JSON)
76-
.content(requestBody)
77-
.contentType(MediaType.APPLICATION_JSON))
78-
.andReturn();
76+
77+
HttpRequest postRequest = new HttpRequest(HttpMethod.POST);
78+
response = postRequest.setPort(applicationPort)
79+
.setHost(hostName)
80+
.setHeaders("content-type", "application/json")
81+
.setHeaders("Accept", "application/json")
82+
.setEndpoint(endpoint)
83+
.setBody(requestBody)
84+
.performRequest();
7985
}
8086

8187
@Then("^get response code of (\\d+)$")
8288
public void get_response_code_of(int statusCode) throws Throwable {
83-
assertEquals(statusCode, mvcResult.getResponse().getStatus());
89+
assertEquals(statusCode, response.getStatusCodeValue());
8490
}
8591

8692
@Then("^get content \"([^\"]*)\"$")
8793
public void get_content(String contentFileName) throws Throwable {
8894
String responseBody = FileUtils.readFileToString(new File(TEST_RESOURCES_PATH + contentFileName), "UTF-8");
89-
assertEquals(responseBody, mvcResult.getResponse().getContentAsString(), true);
95+
96+
Object expectedResponse = new JSONTokener(responseBody).nextValue();
97+
if (expectedResponse instanceof JSONArray) {
98+
JSONArray expectedArray = new JSONArray(responseBody);
99+
JSONArray responseArray = new JSONArray(response.getBody().toString());
100+
assertEquals(expectedArray, responseArray, true);
101+
} else {
102+
JSONObject expectedObject = new JSONObject(responseBody);
103+
JSONObject responseObject = new JSONObject(response.getBody().toString());
104+
assertEquals(expectedObject, responseObject, true);
105+
}
90106
}
91107

92108
}

0 commit comments

Comments
 (0)