Skip to content

Commit 800dc9d

Browse files
committed
added log4j for logging response details, added helper method to print log response details
1 parent 2533098 commit 800dc9d

File tree

4 files changed

+91
-8
lines changed

4 files changed

+91
-8
lines changed

pom.xml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
<lombok-version>1.18.34</lombok-version>
2020
<datafaker-version>2.3.1</datafaker-version>
2121
<org-json-verion>20240303</org-json-verion>
22+
<jackson-databind-version>2.17.2</jackson-databind-version>
23+
<log4j-core-version>2.12.4</log4j-core-version>
24+
<log4j-api-version>2.12.4</log4j-api-version>
2225
<maven-compiler-plugin-version>3.13.0</maven-compiler-plugin-version>
2326
<maven-surefire-plugin-version>3.3.1</maven-surefire-plugin-version>
2427
<java-release-version>17</java-release-version>
@@ -54,6 +57,21 @@
5457
<artifactId>datafaker</artifactId>
5558
<version>${datafaker-version}</version>
5659
</dependency>
60+
<dependency>
61+
<groupId>com.fasterxml.jackson.core</groupId>
62+
<artifactId>jackson-databind</artifactId>
63+
<version>${jackson-databind-version}</version>
64+
</dependency>
65+
<dependency>
66+
<groupId>org.apache.logging.log4j</groupId>
67+
<artifactId>log4j-api</artifactId>
68+
<version>${log4j-api-version}</version>
69+
</dependency>
70+
<dependency>
71+
<groupId>org.apache.logging.log4j</groupId>
72+
<artifactId>log4j-core</artifactId>
73+
<version>${log4j-core-version}</version>
74+
</dependency>
5775
</dependencies>
5876
<build>
5977
<pluginManagement>

src/main/resources/log4j2.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Configuration status="INFO">
3+
<Appenders>
4+
<Console name="LogToConsole" target="SYSTEM_OUT">
5+
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
6+
</Console>
7+
</Appenders>
8+
<Loggers>
9+
<Logger name="io.github.mfaisalkhatri" level="info" additivity="false">
10+
<AppenderRef ref="LogToConsole"/>
11+
</Logger>
12+
<Root level="error">
13+
<AppenderRef ref="LogToConsole"/>
14+
</Root>
15+
</Loggers>
16+
</Configuration>

src/test/java/io/github/mfaisalkhatri/api/restfulecommerce/APITests.java

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
package io.github.mfaisalkhatri.api.restfulecommerce;
22

33

4+
import com.fasterxml.jackson.core.JsonProcessingException;
5+
import com.fasterxml.jackson.databind.ObjectMapper;
6+
import com.google.gson.Gson;
7+
import com.google.gson.GsonBuilder;
8+
import com.google.gson.JsonElement;
9+
import com.google.gson.JsonParser;
10+
import com.microsoft.playwright.APIRequest;
411
import com.microsoft.playwright.APIResponse;
12+
import com.microsoft.playwright.Request;
513
import com.microsoft.playwright.options.RequestOptions;
614
import io.github.mfaisalkhatri.api.restfulecommerce.testdata.OrderData;
715
import org.json.JSONArray;
@@ -19,28 +27,27 @@
1927
public class APITests extends BaseTest{
2028

2129

22-
private OrderData orderData;
23-
24-
@BeforeClass
25-
public void setupTest() {
26-
orderData = getNewOrder();
27-
}
2830
@Test
29-
public void testShouldCreateNewOrders() {
31+
public void testShouldCreateNewOrders() throws JsonProcessingException {
3032

3133
int totalOrders = 4;
3234
List<OrderData> orderList = new ArrayList<>();
3335
for (int i = 0; i < totalOrders; i++) {
34-
orderList.add(orderData);
36+
orderList.add(getNewOrder());
3537
}
3638

3739
APIResponse response = request.post("/addOrder", RequestOptions.create()
3840
.setData(orderList));
41+
Helper helper = new Helper(response);
42+
43+
helper.logResponseDetails();
44+
3945
assertEquals(response.status(), 201);
4046

4147
final JSONObject responseObject = new JSONObject(response.text());
4248
final JSONArray ordersArray = responseObject.getJSONArray("orders");
4349

50+
4451
assertEquals(responseObject.get("message"), "Orders added successfully!");
4552
assertNotNull(ordersArray.getJSONObject(0).get("id"));
4653
assertEquals(orderList.get(0).getUserId(), ordersArray.getJSONObject(0).get("user_id"));
@@ -50,6 +57,7 @@ public void testShouldCreateNewOrders() {
5057
@Test
5158
public void testShouldGetAllOrders() {
5259

60+
5361

5462

5563

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package io.github.mfaisalkhatri.api.restfulecommerce;
2+
3+
import com.fasterxml.jackson.core.JsonProcessingException;
4+
import com.fasterxml.jackson.databind.ObjectMapper;
5+
import com.microsoft.playwright.APIResponse;
6+
import org.apache.logging.log4j.LogManager;
7+
import org.apache.logging.log4j.Logger;
8+
9+
10+
public class Helper {
11+
12+
private APIResponse response;
13+
private Logger log;
14+
15+
public Helper(APIResponse response) {
16+
this.response = response;
17+
log = LogManager.getLogger(getClass());
18+
}
19+
20+
public void logResponseDetails() {
21+
22+
log.info("Response Headers: \n{}",response.headers());
23+
log.info("Status Code: {}", response.status());
24+
log.info("Response Body: \n{}", prettyPrintJson(response.text()));
25+
}
26+
27+
private String prettyPrintJson(String text) {
28+
String prettyPrintJson = "";
29+
try {
30+
ObjectMapper objectMapper = new ObjectMapper();
31+
Object jsonObject = objectMapper.readValue(response.text(), Object.class);
32+
prettyPrintJson = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonObject);
33+
34+
35+
} catch (JsonProcessingException e) {
36+
log.error("Error Printing Pretty Json : {}", e.getMessage());
37+
}
38+
;
39+
return prettyPrintJson;
40+
}
41+
}

0 commit comments

Comments
 (0)