finish all unit tests

This commit is contained in:
2025-12-05 18:51:24 +01:00
parent 34dd87d0f7
commit b9b38ca208
10 changed files with 2486 additions and 3 deletions

View File

@ -0,0 +1,172 @@
package com.example.model;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
/**
* Unit tests for CustomerRegistrationRequest model class
*/
@DisplayName("CustomerRegistrationRequest Model Tests")
class CustomerRegistrationRequestTest {
@Test
@DisplayName("Should create CustomerRegistrationRequest with default constructor")
void testDefaultConstructor() {
CustomerRegistrationRequest request = new CustomerRegistrationRequest();
assertNotNull(request);
assertNull(request.getCustomerName());
assertFalse(request.isBlacklisted());
}
@Test
@DisplayName("Should create CustomerRegistrationRequest with parameterized constructor")
void testParameterizedConstructor() {
CustomerRegistrationRequest request = new CustomerRegistrationRequest("John Doe", true);
assertEquals("John Doe", request.getCustomerName());
assertTrue(request.isBlacklisted());
}
@Test
@DisplayName("Should set and get customerName")
void testSetAndGetCustomerName() {
CustomerRegistrationRequest request = new CustomerRegistrationRequest();
request.setCustomerName("Jane Smith");
assertEquals("Jane Smith", request.getCustomerName());
}
@Test
@DisplayName("Should set and get blacklisted status")
void testSetAndGetBlacklisted() {
CustomerRegistrationRequest request = new CustomerRegistrationRequest();
request.setBlacklisted(true);
assertTrue(request.isBlacklisted());
}
@Test
@DisplayName("Should handle null customerName")
void testNullCustomerName() {
CustomerRegistrationRequest request = new CustomerRegistrationRequest(null, false);
assertNull(request.getCustomerName());
assertFalse(request.isBlacklisted());
}
@Test
@DisplayName("Should handle empty string customerName")
void testEmptyCustomerName() {
CustomerRegistrationRequest request = new CustomerRegistrationRequest("", true);
assertEquals("", request.getCustomerName());
assertTrue(request.isBlacklisted());
}
@Test
@DisplayName("Should create non-blacklisted customer by default")
void testNonBlacklistedByDefault() {
CustomerRegistrationRequest request = new CustomerRegistrationRequest("Test User", false);
assertFalse(request.isBlacklisted());
}
@Test
@DisplayName("Should create blacklisted customer")
void testBlacklistedCustomer() {
CustomerRegistrationRequest request = new CustomerRegistrationRequest("Blacklisted User", true);
assertTrue(request.isBlacklisted());
}
@Test
@DisplayName("Should generate correct toString output")
void testToString() {
CustomerRegistrationRequest request = new CustomerRegistrationRequest("Alice Brown", true);
String result = request.toString();
assertNotNull(result);
assertTrue(result.contains("CustomerRegistrationRequest{"));
assertTrue(result.contains("customerName='Alice Brown'"));
assertTrue(result.contains("blacklisted=true"));
}
@Test
@DisplayName("Should generate toString with null customerName")
void testToStringWithNull() {
CustomerRegistrationRequest request = new CustomerRegistrationRequest(null, false);
String result = request.toString();
assertNotNull(result);
assertTrue(result.contains("customerName='null'") || result.contains("customerName=null"));
assertTrue(result.contains("blacklisted=false"));
}
@Test
@DisplayName("Should handle special characters in customerName")
void testSpecialCharactersInCustomerName() {
String specialName = "José O'Reilly-Smith";
CustomerRegistrationRequest request = new CustomerRegistrationRequest(specialName, false);
assertEquals(specialName, request.getCustomerName());
}
@Test
@DisplayName("Should update values multiple times")
void testMultipleUpdates() {
CustomerRegistrationRequest request = new CustomerRegistrationRequest("Initial Name", false);
request.setCustomerName("Updated Name");
request.setBlacklisted(true);
assertEquals("Updated Name", request.getCustomerName());
assertTrue(request.isBlacklisted());
request.setCustomerName("Final Name");
request.setBlacklisted(false);
assertEquals("Final Name", request.getCustomerName());
assertFalse(request.isBlacklisted());
}
@Test
@DisplayName("Should toggle blacklisted status")
void testToggleBlacklistedStatus() {
CustomerRegistrationRequest request = new CustomerRegistrationRequest("Toggle User", false);
assertFalse(request.isBlacklisted());
request.setBlacklisted(true);
assertTrue(request.isBlacklisted());
request.setBlacklisted(false);
assertFalse(request.isBlacklisted());
}
@Test
@DisplayName("Should handle very long customerName")
void testLongCustomerName() {
StringBuilder builder = new StringBuilder();
for (int i = 0; i < 1000; i++) {
builder.append("A");
}
String longName = builder.toString();
CustomerRegistrationRequest request = new CustomerRegistrationRequest(longName, true);
assertEquals(longName, request.getCustomerName());
assertEquals(1000, request.getCustomerName().length());
}
@Test
@DisplayName("Should handle whitespace in customerName")
void testWhitespaceInCustomerName() {
CustomerRegistrationRequest request1 = new CustomerRegistrationRequest(" ", false);
assertEquals(" ", request1.getCustomerName());
CustomerRegistrationRequest request2 = new CustomerRegistrationRequest("John Doe", false);
assertEquals("John Doe", request2.getCustomerName());
}
}