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 @@ - +