Merge branch '2.3.x' into 2.4.x

Closes gh-25863
This commit is contained in:
Andy Wilkinson
2021-04-01 15:00:51 +01:00
2 changed files with 40 additions and 8 deletions

View File

@@ -26,6 +26,7 @@ import javax.validation.constraints.Size;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.BeanFactoryUtils;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.boot.autoconfigure.AutoConfigurations;
@@ -129,6 +130,37 @@ class ValidationAutoConfigurationTests {
});
}
@Test
void whenUserProvidesSpringValidatorInParentContextThenAutoConfiguredValidatorIsPrimary() {
new ApplicationContextRunner().withUserConfiguration(UserDefinedSpringValidatorConfig.class).run((parent) -> {
this.contextRunner.withParent(parent).run((context) -> {
assertThat(context.getBeanNamesForType(Validator.class)).containsExactly("defaultValidator");
assertThat(context.getBeanNamesForType(org.springframework.validation.Validator.class))
.containsExactly("defaultValidator");
assertThat(BeanFactoryUtils.beanNamesForTypeIncludingAncestors(context.getBeanFactory(),
org.springframework.validation.Validator.class)).containsExactly("defaultValidator",
"customValidator", "anotherCustomValidator");
assertThat(isPrimaryBean(context, "defaultValidator")).isTrue();
});
});
}
@Test
void whenUserProvidesPrimarySpringValidatorInParentContextThenAutoConfiguredValidatorIsPrimary() {
new ApplicationContextRunner().withUserConfiguration(UserDefinedPrimarySpringValidatorConfig.class)
.run((parent) -> {
this.contextRunner.withParent(parent).run((context) -> {
assertThat(context.getBeanNamesForType(Validator.class)).containsExactly("defaultValidator");
assertThat(context.getBeanNamesForType(org.springframework.validation.Validator.class))
.containsExactly("defaultValidator");
assertThat(BeanFactoryUtils.beanNamesForTypeIncludingAncestors(context.getBeanFactory(),
org.springframework.validation.Validator.class)).containsExactly("defaultValidator",
"customValidator", "anotherCustomValidator");
assertThat(isPrimaryBean(context, "defaultValidator")).isTrue();
});
});
}
@Test
void validationIsEnabled() {
this.contextRunner.withUserConfiguration(SampleService.class).run((context) -> {