refactor: AdultValidatorTest refactored
This commit is contained in:
parent
7e38b5a2e0
commit
5555e57f34
2 changed files with 39 additions and 24 deletions
|
@ -1,58 +1,42 @@
|
|||
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 extends ValidatorTest<AdultValidator, String> {
|
||||
|
||||
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);
|
||||
protected AdultValidatorTest() {
|
||||
super(new AdultValidator());
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("No digits in PESEL")
|
||||
void invalidPatternTest() {
|
||||
assertThat(call("notAPesel")).isFalse();
|
||||
assertThatValidation("notAPesel").isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Not an adult")
|
||||
void notAnAdultTest() {
|
||||
assertThat(call("24242400000")).isFalse();
|
||||
assertThatValidation("24242400000").isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Adult")
|
||||
void adultTest() {
|
||||
assertThat(call("88010100000")).isTrue();
|
||||
assertThatValidation("88010100000").isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Elderly person")
|
||||
void seniorTest() {
|
||||
assertThat(call("00010100000")).isTrue();
|
||||
assertThatValidation("00010100000").isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("Invalid date")
|
||||
void notAValidDateTest() {
|
||||
assertThat(call("00919100000")).isFalse();
|
||||
}
|
||||
|
||||
private boolean call(String value) {
|
||||
return validator.isValid(value, validatorContext);
|
||||
assertThatValidation("00919100000").isFalse();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
31
src/test/java/eu/ztsh/wymiana/validation/ValidatorTest.java
Normal file
31
src/test/java/eu/ztsh/wymiana/validation/ValidatorTest.java
Normal file
|
@ -0,0 +1,31 @@
|
|||
package eu.ztsh.wymiana.validation;
|
||||
|
||||
import jakarta.validation.ConstraintValidator;
|
||||
import jakarta.validation.ConstraintValidatorContext;
|
||||
import org.assertj.core.api.AbstractBooleanAssert;
|
||||
import org.hibernate.validator.internal.engine.DefaultClockProvider;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
public abstract class ValidatorTest<V extends ConstraintValidator<?, C>, C> {
|
||||
|
||||
private final V validator;
|
||||
private static ConstraintValidatorContext validatorContext;
|
||||
|
||||
protected ValidatorTest(V validator) {
|
||||
this.validator = validator;
|
||||
}
|
||||
|
||||
@BeforeAll
|
||||
static void prepare() {
|
||||
validatorContext = Mockito.mock(ConstraintValidatorContext.class);
|
||||
Mockito.when(validatorContext.getClockProvider()).thenReturn(DefaultClockProvider.INSTANCE);
|
||||
}
|
||||
|
||||
protected AbstractBooleanAssert<?> assertThatValidation(C value) {
|
||||
return assertThat(validator.isValid(value, validatorContext));
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue