Search in sources :

Example 21 with ObjectError

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

the class BindValidationFailureAnalyzer method getBindValidationExceptionDetails.

private ExceptionDetails getBindValidationExceptionDetails(Throwable rootFailure) {
    BindValidationException validationException = findCause(rootFailure, BindValidationException.class);
    if (validationException != null) {
        BindException target = findCause(rootFailure, BindException.class);
        List<ObjectError> errors = validationException.getValidationErrors().getAllErrors();
        return new ExceptionDetails(errors, target, validationException);
    }
    cn.taketoday.validation.BindException bindException = findCause(rootFailure, cn.taketoday.validation.BindException.class);
    if (bindException != null) {
        List<ObjectError> errors = bindException.getAllErrors();
        return new ExceptionDetails(errors, bindException.getTarget(), bindException);
    }
    return null;
}
Also used : BindValidationException(cn.taketoday.context.properties.bind.validation.BindValidationException) ObjectError(cn.taketoday.validation.ObjectError) BindException(cn.taketoday.context.properties.bind.BindException)

Example 22 with ObjectError

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

the class ValidatorFactoryTests method testSpringValidationWithAutowiredValidator.

@Test
public void testSpringValidationWithAutowiredValidator() {
    ConfigurableApplicationContext ctx = new StandardApplicationContext(LocalValidatorFactoryBean.class);
    LocalValidatorFactoryBean validator = ctx.getBean(LocalValidatorFactoryBean.class);
    ValidPerson person = new ValidPerson();
    person.expectsAutowiredValidator = true;
    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();
    ctx.close();
}
Also used : ConfigurableApplicationContext(cn.taketoday.context.ConfigurableApplicationContext) StandardApplicationContext(cn.taketoday.context.support.StandardApplicationContext) BeanPropertyBindingResult(cn.taketoday.validation.BeanPropertyBindingResult) ObjectError(cn.taketoday.validation.ObjectError) 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