Add @Ignored Test case to reproduce SPR-10243

Issue: SPR-10243
master
Phillip Webb 12 years ago
parent 0b6101478e
commit 19eecb151b
  1. 27
      spring-context/src/test/java/org/springframework/validation/beanvalidation/ValidatorFactoryTests.java

@ -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;
}
}

Loading…
Cancel
Save