Search in sources :

Example 1 with ValidationResult

use of com.vaadin.flow.data.binder.ValidationResult in project flow by vaadin.

the class NotEmptyValidatorTest method nonNullValueIsAllowed.

@Test
public void nonNullValueIsAllowed() {
    NotEmptyValidator<Object> validator = new NotEmptyValidator<>("foo");
    Object value = new Object();
    ValidationResult result = validator.apply(value, new ValueContext());
    Assert.assertFalse(result.isError());
    Assert.assertFalse(result.isError());
}
Also used : ValueContext(com.vaadin.flow.data.binder.ValueContext) ValidationResult(com.vaadin.flow.data.binder.ValidationResult) Test(org.junit.Test)

Example 2 with ValidationResult

use of com.vaadin.flow.data.binder.ValidationResult in project flow by vaadin.

the class NotEmptyValidatorTest method emptyValueIsDisallowed.

@Test
public void emptyValueIsDisallowed() {
    NotEmptyValidator<String> validator = new NotEmptyValidator<>("foo");
    ValidationResult result = validator.apply("", new ValueContext());
    Assert.assertTrue(result.isError());
    Assert.assertEquals("foo", result.getErrorMessage());
}
Also used : ValueContext(com.vaadin.flow.data.binder.ValueContext) ValidationResult(com.vaadin.flow.data.binder.ValidationResult) Test(org.junit.Test)

Example 3 with ValidationResult

use of com.vaadin.flow.data.binder.ValidationResult in project flow by vaadin.

the class ValidatorTestBase method assertFails.

protected <T> void assertFails(T value, String errorMessage, Validator<? super T> validator) {
    ValidationResult result = validator.apply(value, new ValueContext(localeContext));
    Assert.assertTrue(result.isError());
    Assert.assertEquals(errorMessage, result.getErrorMessage());
}
Also used : ValueContext(com.vaadin.flow.data.binder.ValueContext) ValidationResult(com.vaadin.flow.data.binder.ValidationResult)

Example 4 with ValidationResult

use of com.vaadin.flow.data.binder.ValidationResult in project flow by vaadin.

the class BeanValidator method apply.

/**
 * Validates the given value as if it were the value of the bean property
 * configured for this validator. Returns {@code Result.ok} if there are no
 * JSR-303 constraint violations, a {@code Result.error} of chained
 * constraint violation messages otherwise.
 * <p>
 * Null values are accepted unless the property has an {@code @NotNull}
 * annotation or equivalent.
 *
 * @param value
 *            the input value to validate
 * @param context
 *            the value context for validation
 * @return the validation result
 */
@Override
public ValidationResult apply(final Object value, ValueContext context) {
    Set<? extends ConstraintViolation<?>> violations = getJavaxBeanValidator().validateValue(beanType, propertyName, value);
    Locale locale = context.getLocale().orElse(Locale.getDefault());
    Optional<ValidationResult> result = violations.stream().map(violation -> ValidationResult.error(getMessage(violation, locale))).findFirst();
    return result.orElse(ValidationResult.ok());
}
Also used : Locale(java.util.Locale) Validator(com.vaadin.flow.data.binder.Validator) ConstraintDescriptor(javax.validation.metadata.ConstraintDescriptor) Context(javax.validation.MessageInterpolator.Context) Set(java.util.Set) ValidatorFactory(javax.validation.ValidatorFactory) Serializable(java.io.Serializable) Objects(java.util.Objects) ValidationResult(com.vaadin.flow.data.binder.ValidationResult) Locale(java.util.Locale) Optional(java.util.Optional) Validation(javax.validation.Validation) ValueContext(com.vaadin.flow.data.binder.ValueContext) BeanUtil(com.vaadin.flow.internal.BeanUtil) ConstraintViolation(javax.validation.ConstraintViolation) ValidationResult(com.vaadin.flow.data.binder.ValidationResult)

Example 5 with ValidationResult

use of com.vaadin.flow.data.binder.ValidationResult in project flow by vaadin.

the class NotEmptyValidatorTest method nullValueIsDisallowed.

@Test
public void nullValueIsDisallowed() {
    NotEmptyValidator<String> validator = new NotEmptyValidator<>("foo");
    ValidationResult result = validator.apply(null, new ValueContext());
    Assert.assertTrue(result.isError());
    Assert.assertEquals("foo", result.getErrorMessage());
}
Also used : ValueContext(com.vaadin.flow.data.binder.ValueContext) ValidationResult(com.vaadin.flow.data.binder.ValidationResult) Test(org.junit.Test)

Aggregations

ValidationResult (com.vaadin.flow.data.binder.ValidationResult)5 ValueContext (com.vaadin.flow.data.binder.ValueContext)5 Test (org.junit.Test)3 Validator (com.vaadin.flow.data.binder.Validator)1 BeanUtil (com.vaadin.flow.internal.BeanUtil)1 Serializable (java.io.Serializable)1 Locale (java.util.Locale)1 Objects (java.util.Objects)1 Optional (java.util.Optional)1 Set (java.util.Set)1 ConstraintViolation (javax.validation.ConstraintViolation)1 Context (javax.validation.MessageInterpolator.Context)1 Validation (javax.validation.Validation)1 ValidatorFactory (javax.validation.ValidatorFactory)1 ConstraintDescriptor (javax.validation.metadata.ConstraintDescriptor)1