diff --git a/src/test/java/eu/ztsh/wymiana/validation/AdultValidatorTest.java b/src/test/java/eu/ztsh/wymiana/validation/AdultValidatorTest.java index ca24718..d4a2ed1 100644 --- a/src/test/java/eu/ztsh/wymiana/validation/AdultValidatorTest.java +++ b/src/test/java/eu/ztsh/wymiana/validation/AdultValidatorTest.java @@ -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 { -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(); } } diff --git a/src/test/java/eu/ztsh/wymiana/validation/ValidatorTest.java b/src/test/java/eu/ztsh/wymiana/validation/ValidatorTest.java new file mode 100644 index 0000000..7dc4bd8 --- /dev/null +++ b/src/test/java/eu/ztsh/wymiana/validation/ValidatorTest.java @@ -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, 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)); + } + +}