Я читал Hibernate документы о проверочных тестах класса, и я не нашел никакого решения своей «проблемы». Я хочу протестировать свои собственные валидаторы. Например, допустим, у меня есть следующий класс:
public class User {
@NotEmpty(message = "{username.notSpecified}")
private String username;
@NotEmpty
@Size(min = 6, message = "{password.tooShort")
private String password;
@NotEmpty(message = "{city.notSpecified}")
private String city;
/* getters & setters omitted */
}
И я хочу проверить, что каждый пользователь находится в городе Барселона. Для этого у меня была бы реализация пользовательского валидатора пользователя следующим образом:
public class UserValidator implements Validator {
@Autowired
private Validator validator;
@Override
public boolean supports(Class<?> clazz) {
return User.class.equals(clazz);
}
@Override
public void validate(Object target, Errors errors) {
validator.validate(target,errors);
User user = (User) target;
if(!(user.getCity().equals("Barcelona"))){
errors.rejectValue("city", "city.notValid", "Invalid city");
}
}
}
Я понятия не имею, как использовать этот настраиваемый валидатор вместо валидатора по умолчанию, представленного в примере, и который проверяет только ограничения аннотированных полей, а не более «бизнес-логику». Какие-нибудь примеры или подсказки по этому поводу?
Спасибо!