feat: UserCreateRequest model & validation

This commit is contained in:
Piotr Dec 2024-05-22 01:04:26 +02:00
parent 6fb6ca275c
commit edf770b8ed
Signed by: stawros
GPG key ID: F89F27AD8F881A91
5 changed files with 141 additions and 0 deletions

View file

@ -0,0 +1,58 @@
package eu.ztsh.wymiana.validation;
import jakarta.validation.ConstraintValidatorContext;
import org.hibernate.validator.internal.engine.DefaultClockProvider;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import static org.assertj.core.api.Assertions.assertThat;
class AdultValidatorTest {
private static AdultValidator validator;
private static ConstraintValidatorContext validatorContext;
@BeforeAll
static void prepare() {
validator = new AdultValidator();
validatorContext = Mockito.mock(ConstraintValidatorContext.class);
Mockito.when(validatorContext.getClockProvider()).thenReturn(DefaultClockProvider.INSTANCE);
}
@Test
@DisplayName("No digits in PESEL")
void invalidPatternTest() {
assertThat(call("notAPesel")).isFalse();
}
@Test
@DisplayName("Not an adult")
void notAnAdultTest() {
assertThat(call("24242400000")).isFalse();
}
@Test
@DisplayName("Adult")
void adultTest() {
assertThat(call("88010100000")).isTrue();
}
@Test
@DisplayName("Elderly person")
void seniorTest() {
assertThat(call("00010100000")).isTrue();
}
@Test
@DisplayName("Invalid date")
void notAValidDateTest() {
assertThat(call("00919100000")).isFalse();
}
private boolean call(String value) {
return validator.isValid(value, validatorContext);
}
}