@ -34,7 +34,6 @@ import org.springframework.boot.autoconfigure.validation.ValidationAutoConfigura
import org.springframework.boot.test.context.assertj.AssertableApplicationContext ;
import org.springframework.boot.test.context.assertj.AssertableApplicationContext ;
import org.springframework.boot.test.context.runner.ApplicationContextRunner ;
import org.springframework.boot.test.context.runner.ApplicationContextRunner ;
import org.springframework.boot.validation.beanvalidation.MethodValidationExcludeFilter ;
import org.springframework.boot.validation.beanvalidation.MethodValidationExcludeFilter ;
import org.springframework.context.annotation.AnnotationConfigApplicationContext ;
import org.springframework.context.annotation.Bean ;
import org.springframework.context.annotation.Bean ;
import org.springframework.context.annotation.Configuration ;
import org.springframework.context.annotation.Configuration ;
import org.springframework.context.annotation.Primary ;
import org.springframework.context.annotation.Primary ;
@ -58,8 +57,7 @@ import static org.mockito.Mockito.mock;
* /
* /
class ValidationAutoConfigurationTests {
class ValidationAutoConfigurationTests {
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner (
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner ( )
AnnotationConfigApplicationContext : : new )
. withConfiguration ( AutoConfigurations . of ( ValidationAutoConfiguration . class ) ) ;
. withConfiguration ( AutoConfigurations . of ( ValidationAutoConfiguration . class ) ) ;
@Test
@Test
@ -224,6 +222,20 @@ class ValidationAutoConfigurationTests {
. contains ( "someService" ) ) ;
. contains ( "someService" ) ) ;
}
}
@Test
void validationIsEnabledInChildContext ( ) {
this . contextRunner . run ( ( parent ) - > new ApplicationContextRunner ( )
. withConfiguration ( AutoConfigurations . of ( ValidationAutoConfiguration . class ) )
. withUserConfiguration ( SampleService . class ) . withParent ( parent ) . run ( ( context ) - > {
assertThat ( context . getBeansOfType ( Validator . class ) ) . hasSize ( 0 ) ;
assertThat ( parent . getBeansOfType ( Validator . class ) ) . hasSize ( 1 ) ;
SampleService service = context . getBean ( SampleService . class ) ;
service . doSomething ( "Valid" ) ;
assertThatExceptionOfType ( ConstraintViolationException . class )
. isThrownBy ( ( ) - > service . doSomething ( "KO" ) ) ;
} ) ) ;
}
private boolean isPrimaryBean ( AssertableApplicationContext context , String beanName ) {
private boolean isPrimaryBean ( AssertableApplicationContext context , String beanName ) {
return ( ( BeanDefinitionRegistry ) context . getSourceApplicationContext ( ) ) . getBeanDefinition ( beanName ) . isPrimary ( ) ;
return ( ( BeanDefinitionRegistry ) context . getSourceApplicationContext ( ) ) . getBeanDefinition ( beanName ) . isPrimary ( ) ;
}
}