public class User {
@ValdrConstraint(name = "NotEmpty")
private String username;
private int age;
// getters and setters
}
public class NotEmptyValidator implements ValdrConstraintValidator<NotEmpty, String> {
@Override
public void initialize(NotEmpty constraintAnnotation) {
}
@Override
public boolean isValid(String value) {
return value != null && !value.isEmpty();
}
}
public class MinValidator implements ValdrConstraintValidator<Min, Integer> {
private int minValue;
@Override
public void initialize(Min constraintAnnotation) {
minValue = Integer.parseInt(constraintAnnotation.value());
}
@Override
public boolean isValid(Integer value) {
return value >= minValue;
}
}
@Configuration
public class ValdrConfig implements ValidatorConfigurer {
@Override
public void configureValidations(ValdrConstraintValidatorRegistry registry) {
registry.addConstraintValidators(NotEmpty.class, new NotEmptyValidator());
registry.addConstraintValidators(Min.class, new MinValidator());
}
}
public class UserValidationTest {
private Validator validator;
@BeforeEach
public void setUp() {
validator = Valdr.createValidator();
}
@Test
public void testUserValidation() {
User user = new User();
user.setUsername("");
user.setAge(16);
Set<ConstraintViolation<User>> violations = validator.validate(user);
assertEquals(2, violations.size());
}
}