Search in sources :

Example 6 with ObjectError

use of cn.taketoday.validation.ObjectError in project today-infrastructure by TAKETODAY.

the class ValidationBindHandlerTests method bindShouldFailWithAccessToOrigin.

@Test
void bindShouldFailWithAccessToOrigin() {
    this.sources.add(new MockConfigurationPropertySource("foo.age", 4, "file"));
    BindValidationException cause = bindAndExpectValidationError(() -> this.binder.bind(ConfigurationPropertyName.of("foo"), Bindable.of(ExampleValidatedBean.class), this.handler));
    ObjectError objectError = cause.getValidationErrors().getAllErrors().get(0);
    assertThat(Origin.from(objectError).toString()).isEqualTo("file");
}
Also used : ObjectError(cn.taketoday.validation.ObjectError) MockConfigurationPropertySource(cn.taketoday.context.properties.source.MockConfigurationPropertySource) Test(org.junit.jupiter.api.Test)

Example 7 with ObjectError

use of cn.taketoday.validation.ObjectError in project today-infrastructure by TAKETODAY.

the class MethodArgumentNotValidException method getMessage.

@Override
public String getMessage() {
    StringBuilder sb = new StringBuilder("Validation failed for argument [").append(this.parameter.getParameterIndex()).append("] in ").append(this.parameter.getExecutable().toGenericString());
    BindingResult bindingResult = getBindingResult();
    if (bindingResult.getErrorCount() > 1) {
        sb.append(" with ").append(bindingResult.getErrorCount()).append(" errors");
    }
    sb.append(": ");
    for (ObjectError error : bindingResult.getAllErrors()) {
        sb.append('[').append(error).append("] ");
    }
    return sb.toString();
}
Also used : BindingResult(cn.taketoday.validation.BindingResult) ObjectError(cn.taketoday.validation.ObjectError)

Example 8 with ObjectError

use of cn.taketoday.validation.ObjectError in project today-infrastructure by TAKETODAY.

the class ValidatorFactoryTests method testSpringValidationWithClassLevel.

@Test
public void testSpringValidationWithClassLevel() {
    LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean();
    validator.afterPropertiesSet();
    ValidPerson person = new ValidPerson();
    person.setName("Juergen");
    person.getAddress().setStreet("Juergen's Street");
    BeanPropertyBindingResult result = new BeanPropertyBindingResult(person, "person");
    validator.validate(person, result);
    assertThat(result.getErrorCount()).isEqualTo(1);
    ObjectError globalError = result.getGlobalError();
    List<String> errorCodes = Arrays.asList(globalError.getCodes());
    assertThat(errorCodes.size()).isEqualTo(2);
    assertThat(errorCodes.contains("NameAddressValid.person")).isTrue();
    assertThat(errorCodes.contains("NameAddressValid")).isTrue();
}
Also used : BeanPropertyBindingResult(cn.taketoday.validation.BeanPropertyBindingResult) ObjectError(cn.taketoday.validation.ObjectError) Test(org.junit.jupiter.api.Test)

Example 9 with ObjectError

use of cn.taketoday.validation.ObjectError in project today-framework by TAKETODAY.

the class ValidationErrorsTests method getErrorsShouldAdaptFieldErrorsToBeOriginProviders.

@Test
void getErrorsShouldAdaptFieldErrorsToBeOriginProviders() {
    Set<ConfigurationProperty> boundProperties = new LinkedHashSet<>();
    ConfigurationPropertyName name1 = ConfigurationPropertyName.of("foo.bar");
    Origin origin1 = MockOrigin.of("line1");
    boundProperties.add(new ConfigurationProperty(name1, "boot", origin1));
    ConfigurationPropertyName name2 = ConfigurationPropertyName.of("foo.baz.bar");
    Origin origin2 = MockOrigin.of("line2");
    boundProperties.add(new ConfigurationProperty(name2, "boot", origin2));
    List<ObjectError> allErrors = new ArrayList<>();
    allErrors.add(new FieldError("objectname", "bar", "message"));
    ValidationErrors errors = new ValidationErrors(ConfigurationPropertyName.of("foo.baz"), boundProperties, allErrors);
    assertThat(Origin.from(errors.getAllErrors().get(0))).isEqualTo(origin2);
}
Also used : ConfigurationProperty(cn.taketoday.context.properties.source.ConfigurationProperty) LinkedHashSet(java.util.LinkedHashSet) MockOrigin(cn.taketoday.origin.MockOrigin) Origin(cn.taketoday.origin.Origin) ConfigurationPropertyName(cn.taketoday.context.properties.source.ConfigurationPropertyName) ObjectError(cn.taketoday.validation.ObjectError) ArrayList(java.util.ArrayList) FieldError(cn.taketoday.validation.FieldError) Test(org.junit.jupiter.api.Test)

Example 10 with ObjectError

use of cn.taketoday.validation.ObjectError in project today-framework by TAKETODAY.

the class ValidationErrorsTests method iteratorShouldIterateErrors.

@Test
void iteratorShouldIterateErrors() {
    List<ObjectError> allErrors = new ArrayList<>();
    allErrors.add(new ObjectError("foo", "bar"));
    ValidationErrors errors = new ValidationErrors(NAME, Collections.emptySet(), allErrors);
    assertThat(errors.iterator()).toIterable().containsExactlyElementsOf(allErrors);
}
Also used : ObjectError(cn.taketoday.validation.ObjectError) ArrayList(java.util.ArrayList) Test(org.junit.jupiter.api.Test)

Aggregations

ObjectError (cn.taketoday.validation.ObjectError)22 Test (org.junit.jupiter.api.Test)18 BindingResult (cn.taketoday.validation.BindingResult)8 BindException (cn.taketoday.validation.BindException)6 MapBindingResult (cn.taketoday.validation.MapBindingResult)6 MethodArgumentNotValidException (cn.taketoday.web.bind.MethodArgumentNotValidException)6 ServletException (jakarta.servlet.ServletException)6 ArrayList (java.util.ArrayList)6 BeanPropertyBindingResult (cn.taketoday.validation.BeanPropertyBindingResult)4 ConfigurableApplicationContext (cn.taketoday.context.ConfigurableApplicationContext)2 BindException (cn.taketoday.context.properties.bind.BindException)2 BindValidationException (cn.taketoday.context.properties.bind.validation.BindValidationException)2 ConfigurationProperty (cn.taketoday.context.properties.source.ConfigurationProperty)2 ConfigurationPropertyName (cn.taketoday.context.properties.source.ConfigurationPropertyName)2 MockConfigurationPropertySource (cn.taketoday.context.properties.source.MockConfigurationPropertySource)2 StandardApplicationContext (cn.taketoday.context.support.StandardApplicationContext)2 MethodParameter (cn.taketoday.core.MethodParameter)2 MockOrigin (cn.taketoday.origin.MockOrigin)2 Origin (cn.taketoday.origin.Origin)2 FieldError (cn.taketoday.validation.FieldError)2