|
|
|
@ -35,6 +35,7 @@ import javax.validation.Valid; |
|
|
|
|
import javax.validation.constraints.NotNull; |
|
|
|
|
|
|
|
|
|
import org.hibernate.validator.HibernateValidator; |
|
|
|
|
import org.junit.Ignore; |
|
|
|
|
import org.junit.Test; |
|
|
|
|
|
|
|
|
|
import org.springframework.validation.BeanPropertyBindingResult; |
|
|
|
@ -42,6 +43,7 @@ import org.springframework.validation.Errors; |
|
|
|
|
import org.springframework.validation.FieldError; |
|
|
|
|
import org.springframework.validation.ObjectError; |
|
|
|
|
|
|
|
|
|
import static org.hamcrest.Matchers.instanceOf; |
|
|
|
|
import static org.junit.Assert.*; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -102,6 +104,22 @@ public class ValidatorFactoryTests { |
|
|
|
|
assertTrue(cv.getConstraintDescriptor().getAnnotation() instanceof NameAddressValid); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
@Ignore |
|
|
|
|
public void testSpringValidationFieldType() throws Exception { |
|
|
|
|
LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean(); |
|
|
|
|
validator.afterPropertiesSet(); |
|
|
|
|
ValidPerson person = new ValidPerson(); |
|
|
|
|
person.setName("Phil"); |
|
|
|
|
person.getAddress().setStreet("Phil's Street"); |
|
|
|
|
BeanPropertyBindingResult errors = new BeanPropertyBindingResult(person, "person"); |
|
|
|
|
validator.validate(person, errors); |
|
|
|
|
assertEquals(1, errors.getErrorCount()); |
|
|
|
|
assertThat("Field/Value type missmatch", |
|
|
|
|
errors.getFieldError("address").getRejectedValue(), |
|
|
|
|
instanceOf(ValidAddress.class)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void testSpringValidation() throws Exception { |
|
|
|
|
LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean(); |
|
|
|
@ -289,8 +307,13 @@ public class ValidatorFactoryTests { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public boolean isValid(ValidPerson value, ConstraintValidatorContext constraintValidatorContext) { |
|
|
|
|
return (value.name == null || !value.address.street.contains(value.name)); |
|
|
|
|
public boolean isValid(ValidPerson value, ConstraintValidatorContext context) { |
|
|
|
|
boolean valid = (value.name == null || !value.address.street.contains(value.name)); |
|
|
|
|
if (!valid && "Phil".equals(value.name)) { |
|
|
|
|
context.buildConstraintViolationWithTemplate( |
|
|
|
|
context.getDefaultConstraintMessageTemplate()).addNode("address").addConstraintViolation().disableDefaultConstraintViolation(); |
|
|
|
|
} |
|
|
|
|
return valid; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|