From 3505d5f5a3537be1a698022f1dfe08b61929a948 Mon Sep 17 00:00:00 2001 From: aab1 Date: Sat, 23 May 2026 14:10:21 -0400 Subject: [PATCH] initial commit Added randomUserWithNullField --- .../playwright/toolshop/domain/User.java | 68 +++++++++++++++++++ .../login/LoginWithRegisteredUserTest.java | 2 +- .../toolshop/login/RegisterUserAPITest.java | 24 +++++++ 3 files changed, 93 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/serenitydojo/playwright/toolshop/domain/User.java b/src/test/java/com/serenitydojo/playwright/toolshop/domain/User.java index b4b9041..618719a 100644 --- a/src/test/java/com/serenitydojo/playwright/toolshop/domain/User.java +++ b/src/test/java/com/serenitydojo/playwright/toolshop/domain/User.java @@ -54,4 +54,72 @@ public User withFirstName(String first_name) { return new User(first_name,last_name,address,phone,dob,password,email); } + public static User randomUserWithNullField(String fieldName) { + + User user = randomUser(); + + switch (fieldName.toLowerCase()) { + + case "firstname": + return new User( + null, + user.last_name(), + user.address(), + user.phone(), + user.dob(), + user.password(), + user.email() + ); + + case "lastname": + return new User( + user.first_name(), + null, + user.address(), + user.phone(), + user.dob(), + user.password(), + user.email() + ); + + case "phone": + return new User( + user.first_name(), + user.last_name(), + user.address(), + null, + user.dob(), + user.password(), + user.email() + ); + + case "email": + return new User( + user.first_name(), + user.last_name(), + user.address(), + user.phone(), + user.dob(), + user.password(), + null + ); + + case "password": + return new User( + user.first_name(), + user.last_name(), + user.address(), + user.phone(), + user.dob(), + null, + user.email() + ); + + default: + throw new IllegalArgumentException( + "Unknown field: " + fieldName + ); + } + } + } diff --git a/src/test/java/com/serenitydojo/playwright/toolshop/login/LoginWithRegisteredUserTest.java b/src/test/java/com/serenitydojo/playwright/toolshop/login/LoginWithRegisteredUserTest.java index 80a5d10..3074c2a 100644 --- a/src/test/java/com/serenitydojo/playwright/toolshop/login/LoginWithRegisteredUserTest.java +++ b/src/test/java/com/serenitydojo/playwright/toolshop/login/LoginWithRegisteredUserTest.java @@ -7,7 +7,7 @@ import static org.assertj.core.api.Assertions.assertThat; -public class LoginWithRegisteredUserTest extends PlaywrightTestCase { +public class LoginWithRegisteredUserTest extends PlaywrightTestCase { @Test @DisplayName("Should be able to login with a registered user") diff --git a/src/test/java/com/serenitydojo/playwright/toolshop/login/RegisterUserAPITest.java b/src/test/java/com/serenitydojo/playwright/toolshop/login/RegisterUserAPITest.java index 963d3c2..cad4499 100644 --- a/src/test/java/com/serenitydojo/playwright/toolshop/login/RegisterUserAPITest.java +++ b/src/test/java/com/serenitydojo/playwright/toolshop/login/RegisterUserAPITest.java @@ -94,4 +94,28 @@ void should_register_user() { }); } + + @Test + void should_not_register_user() { + User invalidUser = User.randomUserWithNullField("firstName"); + + var response = request.post("/users/register", + RequestOptions.create() + .setHeader("Content-Type", "application/json") + .setData(invalidUser) + ); + + String responseBody = response.text(); +// User createdUser = gson.fromJson(responseBody, User.class); + assertSoftly(softly -> { + softly.assertThat(responseBody).isEqualTo("{\"first_name\":[\"The first name field is required.\"]}") + .as("First name field is required"); + softly.assertThat(response.status()).isEqualTo(422); + }); + + + JsonObject responseObject = gson.fromJson(responseBody, JsonObject.class); + System.out.println(responseObject); + } + }