You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bval.apache.org by "John Myers (JIRA)" <ji...@apache.org> on 2016/10/19 17:51:58 UTC
[jira] [Created] (BVAL-149) ConstraintViolation contains wrong
property
John Myers created BVAL-149:
-------------------------------
Summary: ConstraintViolation contains wrong property
Key: BVAL-149
URL: https://issues.apache.org/jira/browse/BVAL-149
Project: BVal
Issue Type: Bug
Affects Versions: 1.1.1
Reporter: John Myers
The following test case fails with:
{noformat}
java.lang.AssertionError: expected [booleanFalse] but found [booleanTrue]
Expected :booleanFalse
Actual :booleanTrue
{noformat}
{code}
import com.google.common.collect.Iterables;
import org.apache.bval.jsr.ApacheValidationProvider;
import org.testng.annotations.Test;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.constraints.AssertTrue;
import static org.testng.Assert.assertEquals;
public class TestValidation
{
private static final Validator VALIDATOR = Validation.byProvider(ApacheValidationProvider.class).configure().buildValidatorFactory().getValidator();
@Test
public void testViolationIdentifiesCorrectAttribute()
{
TestingObject trueObject = new TestingObject(true);
assertViolationMatches(trueObject, "booleanFalse", "boolean is false");
}
private static void assertViolationMatches(TestingObject object, String property, String message)
{
ConstraintViolation<TestingObject> violation = Iterables.getOnlyElement(VALIDATOR.validate(object));
assertEquals(violation.getMessage(), message);
assertEquals(violation.getPropertyPath().toString(), property);
}
private static class TestingObject
{
private final boolean bool;
public TestingObject(boolean bool)
{
this.bool = bool;
}
@AssertTrue(message = "boolean is true")
private boolean isBooleanTrue()
{
return bool;
}
@AssertTrue(message = "boolean is false")
private boolean isBooleanFalse()
{
return !bool;
}
}
}
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)