diff --git a/pom.xml b/pom.xml
index d84dda0..ae62b28 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,25 +12,25 @@
UTF-8
- 1.47.0
+ 1.49.0
7.10.2
1.3
1.1.1
- 1.18.34
- 2.4.0
+ 1.18.36
+ 2.4.2
2.11.0
20240303
- 2.18.0
+ 2.18.2
2.24.1
2.24.1
+ 3.17.0
3.13.0
3.3.1
17
- 3.5.0
+ 3.5.2
test-suite/testng.xml
-
com.microsoft.playwright
playwright
@@ -46,7 +46,6 @@
json
${org-json-verion}
-
org.projectlombok
lombok
@@ -78,6 +77,12 @@
log4j-core
${log4j-core-version}
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3-version}
+
+
@@ -133,4 +138,4 @@
-
+
\ No newline at end of file
diff --git a/src/test/java/io/github/mfaisalkhatri/api/logger/Logger.java b/src/test/java/io/github/mfaisalkhatri/api/logger/Logger.java
new file mode 100644
index 0000000..6b35053
--- /dev/null
+++ b/src/test/java/io/github/mfaisalkhatri/api/logger/Logger.java
@@ -0,0 +1,43 @@
+package io.github.mfaisalkhatri.api.logger;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.microsoft.playwright.APIResponse;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.LogManager;
+
+
+public class Logger {
+
+ private final APIResponse response;
+ private final org.apache.logging.log4j.Logger log;
+
+ public Logger (final APIResponse response) {
+ this.response = response;
+ this.log = LogManager.getLogger (getClass ());
+ }
+
+ public void logResponseDetails () {
+ String responseBody = this.response.text ();
+ this.log.info ("Logging Response Details....\n responseHeaders: {}, \nstatusCode: {},",
+ this.response.headers (), this.response.status ());
+ this.log.info ("\n Response body: {}", prettyPrintJson (responseBody));
+ this.log.info ("End of Logs!");
+ }
+
+ private String prettyPrintJson (final String text) {
+ if (StringUtils.isNotBlank (text) && StringUtils.isNotEmpty (text)) {
+ try {
+ final ObjectMapper objectMapper = new ObjectMapper ();
+ final Object jsonObject = objectMapper.readValue (text, Object.class);
+ return objectMapper.writerWithDefaultPrettyPrinter ()
+ .writeValueAsString (jsonObject);
+ } catch (final JsonProcessingException e) {
+ this.log.error ("Failed to pretty print JSON: {}", e.getMessage (), e);
+ }
+ }
+ return "No response body found!";
+
+ }
+}
+
diff --git a/src/test/java/io/github/mfaisalkhatri/api/restfulbooker/tests/BaseTest.java b/src/test/java/io/github/mfaisalkhatri/api/restfulbooker/tests/BaseTest.java
index 1ab1fd0..eb3fb01 100644
--- a/src/test/java/io/github/mfaisalkhatri/api/restfulbooker/tests/BaseTest.java
+++ b/src/test/java/io/github/mfaisalkhatri/api/restfulbooker/tests/BaseTest.java
@@ -3,7 +3,9 @@
import java.util.HashMap;
import java.util.Map;
+import com.microsoft.playwright.APIResponse;
import io.github.mfaisalkhatri.api.manager.RequestManager;
+import io.github.mfaisalkhatri.api.logger.Logger;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
@@ -31,4 +33,9 @@ public void tearDown() {
this.manager.disposeAPIRequestContext();
this.manager.closePlaywright();
}
+
+ protected void logResponse (final APIResponse response) {
+ final Logger logger = new Logger (response);
+ logger.logResponseDetails ();
+ }
}
diff --git a/src/test/java/io/github/mfaisalkhatri/api/restfulbooker/tests/RestfulBookerEndToEndTests.java b/src/test/java/io/github/mfaisalkhatri/api/restfulbooker/tests/RestfulBookerEndToEndTests.java
index 90accb1..1d6210b 100644
--- a/src/test/java/io/github/mfaisalkhatri/api/restfulbooker/tests/RestfulBookerEndToEndTests.java
+++ b/src/test/java/io/github/mfaisalkhatri/api/restfulbooker/tests/RestfulBookerEndToEndTests.java
@@ -35,6 +35,7 @@ public void createBookingTest() {
final APIResponse response = this.manager.postRequest("/booking", RequestOptions.create()
.setData(this.bookingData));
+ logResponse (response);
assertEquals(response.status(), 200);
final JSONObject responseObject = new JSONObject(response.text());
@@ -51,6 +52,7 @@ public void createBookingTest() {
@Test
public void getBookingTest() {
final APIResponse response = this.manager.getRequest("/booking/" + this.bookingId);
+ logResponse (response);
assertEquals(response.status(), 200);
final JSONObject responseObject = new JSONObject(response.text());
@@ -67,6 +69,7 @@ public void updateBookingTest() {
final APIResponse response = this.manager.putRequest("/booking/" + this.bookingId, RequestOptions.create()
.setData(updateBookingData)
.setHeader("Cookie", "token=" + this.token));
+ logResponse (response);
assertEquals(response.status(), 200);
final JSONObject responseObject = new JSONObject(response.text());
@@ -82,6 +85,7 @@ public void generateTokenTest() {
final Tokencreds tokenData = getToken();
final APIResponse response = this.manager.postRequest("/auth", RequestOptions.create()
.setData(tokenData));
+ logResponse (response);
assertEquals(response.status(), 200);
final JSONObject responseObject = new JSONObject(response.text());
@@ -99,6 +103,7 @@ public void updatePartialBookingTest() {
.setData(partialBookingData)
.setHeader("Cookie", "token=" + this.token));
+ logResponse (response);
assertEquals(response.status(), 200);
final JSONObject responseObject = new JSONObject(response.text());
@@ -111,12 +116,14 @@ public void deleteBookingTest() {
final APIResponse response = this.manager.deleteRequest("/booking/" + this.bookingId, RequestOptions.create()
.setHeader("Cookie", "token=" + this.token));
+ logResponse (response);
assertEquals(response.status(), 201);
}
@Test
public void testBookingDeleted() {
final APIResponse response = this.manager.getRequest("/booking/" + this.bookingId);
+ logResponse (response);
assertEquals(response.status(), 404);
}
}
diff --git a/src/test/java/io/github/mfaisalkhatri/api/restfulecommerce/BaseTest.java b/src/test/java/io/github/mfaisalkhatri/api/restfulecommerce/BaseTest.java
index 8cdb887..94a8dca 100644
--- a/src/test/java/io/github/mfaisalkhatri/api/restfulecommerce/BaseTest.java
+++ b/src/test/java/io/github/mfaisalkhatri/api/restfulecommerce/BaseTest.java
@@ -7,6 +7,7 @@
import com.microsoft.playwright.APIRequestContext;
import com.microsoft.playwright.APIResponse;
import com.microsoft.playwright.Playwright;
+import io.github.mfaisalkhatri.api.logger.Logger;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
diff --git a/src/test/java/io/github/mfaisalkhatri/api/restfulecommerce/Logger.java b/src/test/java/io/github/mfaisalkhatri/api/restfulecommerce/Logger.java
deleted file mode 100644
index ab787fe..0000000
--- a/src/test/java/io/github/mfaisalkhatri/api/restfulecommerce/Logger.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package io.github.mfaisalkhatri.api.restfulecommerce;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.microsoft.playwright.APIResponse;
-import org.apache.logging.log4j.LogManager;
-
-
-public class Logger {
-
- private final APIResponse response;
- private final org.apache.logging.log4j.Logger log;
-
- public Logger (final APIResponse response) {
- this.response = response;
- this.log = LogManager.getLogger (getClass ());
- }
-
- public void logResponseDetails() {
- this.log.info ("Logging Response Details.....");
-
- this.log.info ("Response Headers: \n{}", this.response.headers ());
- this.log.info ("Status Code: {}", this.response.status ());
- if (this.response.text () != null && !this.response.text ()
- .isEmpty () && !this.response.text ()
- .isBlank ()) {
- this.log.info ("Response Body: \n{}", prettyPrintJson (this.response.text ()));
- }
- this.log.info ("End of Logs!");
- }
-
- private String prettyPrintJson (final String text) {
- String prettyPrintJson = "";
- if (text != null && !text.isBlank() && !text.isEmpty()) {
- try {
-
- final ObjectMapper objectMapper = new ObjectMapper ();
- final Object jsonObject = objectMapper.readValue (text, Object.class);
- prettyPrintJson = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonObject);
- return prettyPrintJson;
- } catch (final JsonProcessingException e) {
- this.log.error ("Error Printing Pretty Json : {}", e.getMessage ());
- }
- }
- this.log.info ("No response body generated!");
- return null;
- }
-}
diff --git a/test-suite/testng.xml b/test-suite/testng.xml
index 7358876..355920f 100644
--- a/test-suite/testng.xml
+++ b/test-suite/testng.xml
@@ -1,6 +1,6 @@
-
+