173 lines
5.8 KiB
Java
173 lines
5.8 KiB
Java
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());
|
|
}
|
|
}
|