@Test void testConstructor() throws Exception { Vtor vtor = mock(Vtor.class); Object target = new Object(); ValidationConstraintContext context = new ValidationConstraintContext(vtor, target, "niceConstraint"); assertEquals(context.getName(), "niceConstraint"); assertEquals(context.getTarget(), target); assertEquals(context.getValidator(), vtor); }
@Test void testValidateWithin() throws Exception { Vtor vtor = mock(Vtor.class); Object target = new Object(); ValidationConstraintContext context = new ValidationConstraintContext(vtor, target, "niceConstraint"); ValidationContext vctx = mock(ValidationContext.class); Object value = new Object(); //when context.validateWithin(vctx, value); //then verify(vtor).validate(eq(vctx), eq(value), eq("niceConstraint")); } }
@Override public boolean isValid(final ValidationConstraintContext vcc, final Object value) { return validate(vcc.getTarget(), value, fieldName); }
/** * Invokes validation on inner context. Always returns <code>true</code> since * inner context violations will be appended to provided validator. */ @Override public boolean isValid(final ValidationConstraintContext vcc, final Object value) { if (value == null) { return true; } vcc.validateWithin(targetValidationContext, value); return true; } }
/** * Performs validation of provided validation context and appends violations. */ public List<Violation> validate(final ValidationContext ctx, final Object target, final String targetName) { for (Map.Entry<String, List<Check>> entry : ctx.map.entrySet()) { String name = entry.getKey(); Object value = BeanUtil.declaredSilent.getProperty(target, name); String valueName = targetName != null ? (targetName + '.' + name) : name; // move up ValidationConstraintContext vcc = new ValidationConstraintContext(this, target, valueName); for (Check check : entry.getValue()) { String[] checkProfiles = check.getProfiles(); if (!matchProfiles(checkProfiles)) { continue; } if (check.getSeverity() < severity) { continue; } ValidationConstraint constraint = check.getConstraint(); if (!constraint.isValid(vcc, value)) { addViolation(new Violation(valueName, target, value, check)); } } } return getViolations(); }
public boolean isValid(final ValidationConstraintContext vcc, final Object value) { return validate(vcc.getTarget(), value, fieldName); }
@Test void testIsValid_withNullValue() { //given ValidationContext targetValidationContext = mock(ValidationContext.class); AssertValidConstraint assertValidConstraint = new AssertValidConstraint(targetValidationContext); ValidationConstraintContext vcc = mockContext(); //when boolean valid = assertValidConstraint.isValid(vcc, null); //then assertTrue(valid); verify(vcc, never()).validateWithin(eq(targetValidationContext), isNull()); }
/** * Performs validation of provided validation context and appends violations. */ public void validate(ValidationContext ctx, Object target, String targetName) { for (Map.Entry<String, List<Check>> entry : ctx.map.entrySet()) { String name = entry.getKey(); Object value = BeanUtil.getDeclaredPropertySilently(target, name); String valueName = targetName != null ? (targetName + '.' + name) : name; // move up ValidationConstraintContext vcc = new ValidationConstraintContext(this, target, valueName); for (Check check : entry.getValue()) { String[] checkProfiles = check.getProfiles(); if (matchProfiles(checkProfiles) == false) { continue; } if (check.getSeverity() < severity) { continue; } ValidationConstraint constraint = check.getConstraint(); if (constraint.isValid(vcc, value) == false) { addViolation(new Violation(valueName, target, value, check)); } } } }
@Test void testIsValid_forDifferentValues() { EqualToDeclaredFieldConstraint equalToDeclaredFieldConstraint = new EqualToDeclaredFieldConstraint("testField"); ValidationConstraintContext cvv = mockContext(); when(cvv.getTarget()).thenReturn(new TestValue("someValue")); assertFalse(equalToDeclaredFieldConstraint.isValid(cvv, "wrongValue")); }
@Test void testIsValid() { //given ValidationContext targetValidationContext = mock(ValidationContext.class); AssertValidConstraint assertValidConstraint = new AssertValidConstraint(targetValidationContext); ValidationConstraintContext vcc = mockContext(); Object someValue = new Object(); //this method is empty so nothing to check assertValidConstraint.configure(null); //when validate some value boolean valid = assertValidConstraint.isValid(vcc, someValue); //then validateWithin must be called for validated value assertTrue(valid); //validateWithin must be called for validated value verify(vcc).validateWithin(eq(targetValidationContext), eq(someValue)); } }
@Test void testIsValid_forEqualValues() { EqualToFieldConstraint equalToDeclaredFieldConstraint = new EqualToFieldConstraint("testField"); ValidationConstraintContext cvv = mockContext(); when(cvv.getTarget()).thenReturn(new TestBean("someValue")); assertTrue(equalToDeclaredFieldConstraint.isValid(cvv, "someValue")); }
/** * Invokes validation on inner context. Always returns <code>true</code> since * inner context violations will be appended to provided validator. */ public boolean isValid(ValidationConstraintContext vcc, Object value) { if (value == null) { return true; } vcc.validateWithin(targetValidationContext, value); return true; } }
@Test void testIsValid_forEqualValues() { EqualToDeclaredFieldConstraint equalToDeclaredFieldConstraint = new EqualToDeclaredFieldConstraint("testField"); ValidationConstraintContext cvv = mockContext(); when(cvv.getTarget()).thenReturn(new TestValue("someValue")); assertTrue(equalToDeclaredFieldConstraint.isValid(cvv, "someValue")); }
@Test void testIsValid_forDifferentValues() { EqualToFieldConstraint equalToDeclaredFieldConstraint = new EqualToFieldConstraint("testField"); ValidationConstraintContext cvv = mockContext(); when(cvv.getTarget()).thenReturn(new TestBean("someValue")); assertFalse(equalToDeclaredFieldConstraint.isValid(cvv, "wrongValue")); }
public boolean isValid(ValidationConstraintContext vcc, Object value) { return validate(vcc.getTarget(), value, fieldName); }
public boolean isValid(ValidationConstraintContext vcc, Object value) { return validate(vcc.getTarget(), value, fieldName); }