Do not use Mockito to mock ReactiveAdapterRegistry
This commit is contained in:
@@ -40,7 +40,6 @@ dependencies {
|
|||||||
testImplementation("jakarta.validation:jakarta.validation-api")
|
testImplementation("jakarta.validation:jakarta.validation-api")
|
||||||
testImplementation("io.reactivex.rxjava3:rxjava")
|
testImplementation("io.reactivex.rxjava3:rxjava")
|
||||||
testImplementation("io.projectreactor:reactor-test")
|
testImplementation("io.projectreactor:reactor-test")
|
||||||
testImplementation("io.projectreactor.tools:blockhound") // required by Mockito 5's default MockMaker in order to mock ReactiveAdapterRegistry which "contains" SpringCoreBlockHoundIntegration
|
|
||||||
testImplementation("io.micrometer:micrometer-observation-test")
|
testImplementation("io.micrometer:micrometer-observation-test")
|
||||||
testImplementation("io.undertow:undertow-core")
|
testImplementation("io.undertow:undertow-core")
|
||||||
testImplementation("org.apache.tomcat.embed:tomcat-embed-core")
|
testImplementation("org.apache.tomcat.embed:tomcat-embed-core")
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ public class DelegatingWebFluxConfigurationIntegrationTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void requestMappingHandlerAdapterWithPrimaryUsesQualifiedReactiveAdapterRegistry() {
|
void requestMappingHandlerAdapterWithPrimaryUsesQualifiedReactiveAdapterRegistry() {
|
||||||
load(registerPrimaryBean("testReactiveAdapterRegistry", ReactiveAdapterRegistry.class));
|
load(registerPrimaryBean("testReactiveAdapterRegistry", ReactiveAdapterRegistry.class, new ReactiveAdapterRegistry()));
|
||||||
RequestMappingHandlerAdapter mappingHandlerAdapter = this.context.getBean(RequestMappingHandlerAdapter.class);
|
RequestMappingHandlerAdapter mappingHandlerAdapter = this.context.getBean(RequestMappingHandlerAdapter.class);
|
||||||
assertThat(mappingHandlerAdapter.getReactiveAdapterRegistry()).isSameAs(this.context.getBean("webFluxAdapterRegistry"));
|
assertThat(mappingHandlerAdapter.getReactiveAdapterRegistry()).isSameAs(this.context.getBean("webFluxAdapterRegistry"));
|
||||||
assertThat(this.context.getBeansOfType(ReactiveAdapterRegistry.class)).containsOnlyKeys(
|
assertThat(this.context.getBeansOfType(ReactiveAdapterRegistry.class)).containsOnlyKeys(
|
||||||
@@ -117,7 +117,7 @@ public class DelegatingWebFluxConfigurationIntegrationTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void responseEntityResultHandlerWithPrimaryUsesQualifiedReactiveAdapterRegistry() {
|
void responseEntityResultHandlerWithPrimaryUsesQualifiedReactiveAdapterRegistry() {
|
||||||
load(registerPrimaryBean("testReactiveAdapterRegistry", ReactiveAdapterRegistry.class));
|
load(registerPrimaryBean("testReactiveAdapterRegistry", ReactiveAdapterRegistry.class, new ReactiveAdapterRegistry()));
|
||||||
ResponseEntityResultHandler responseEntityResultHandler = this.context.getBean(ResponseEntityResultHandler.class);
|
ResponseEntityResultHandler responseEntityResultHandler = this.context.getBean(ResponseEntityResultHandler.class);
|
||||||
assertThat(responseEntityResultHandler.getAdapterRegistry()).isSameAs(this.context.getBean("webFluxAdapterRegistry"));
|
assertThat(responseEntityResultHandler.getAdapterRegistry()).isSameAs(this.context.getBean("webFluxAdapterRegistry"));
|
||||||
assertThat(this.context.getBeansOfType(ReactiveAdapterRegistry.class)).containsOnlyKeys(
|
assertThat(this.context.getBeansOfType(ReactiveAdapterRegistry.class)).containsOnlyKeys(
|
||||||
@@ -143,7 +143,7 @@ public class DelegatingWebFluxConfigurationIntegrationTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void responseBodyResultHandlerWithPrimaryUsesQualifiedReactiveAdapterRegistry() {
|
void responseBodyResultHandlerWithPrimaryUsesQualifiedReactiveAdapterRegistry() {
|
||||||
load(registerPrimaryBean("testReactiveAdapterRegistry", ReactiveAdapterRegistry.class));
|
load(registerPrimaryBean("testReactiveAdapterRegistry", ReactiveAdapterRegistry.class, new ReactiveAdapterRegistry()));
|
||||||
ResponseBodyResultHandler responseBodyResultHandler = this.context.getBean(ResponseBodyResultHandler.class);
|
ResponseBodyResultHandler responseBodyResultHandler = this.context.getBean(ResponseBodyResultHandler.class);
|
||||||
assertThat(responseBodyResultHandler.getAdapterRegistry()).isSameAs(this.context.getBean("webFluxAdapterRegistry"));
|
assertThat(responseBodyResultHandler.getAdapterRegistry()).isSameAs(this.context.getBean("webFluxAdapterRegistry"));
|
||||||
assertThat(this.context.getBeansOfType(ReactiveAdapterRegistry.class)).containsOnlyKeys(
|
assertThat(this.context.getBeansOfType(ReactiveAdapterRegistry.class)).containsOnlyKeys(
|
||||||
@@ -169,7 +169,7 @@ public class DelegatingWebFluxConfigurationIntegrationTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void viewResolutionResultHandlerWithPrimaryUsesQualifiedReactiveAdapterRegistry() {
|
void viewResolutionResultHandlerWithPrimaryUsesQualifiedReactiveAdapterRegistry() {
|
||||||
load(registerPrimaryBean("testReactiveAdapterRegistry", ReactiveAdapterRegistry.class));
|
load(registerPrimaryBean("testReactiveAdapterRegistry", ReactiveAdapterRegistry.class, new ReactiveAdapterRegistry()));
|
||||||
ViewResolutionResultHandler viewResolutionResultHandler = this.context.getBean(ViewResolutionResultHandler.class);
|
ViewResolutionResultHandler viewResolutionResultHandler = this.context.getBean(ViewResolutionResultHandler.class);
|
||||||
assertThat(viewResolutionResultHandler.getAdapterRegistry()).isSameAs(this.context.getBean("webFluxAdapterRegistry"));
|
assertThat(viewResolutionResultHandler.getAdapterRegistry()).isSameAs(this.context.getBean("webFluxAdapterRegistry"));
|
||||||
assertThat(this.context.getBeansOfType(ReactiveAdapterRegistry.class)).containsOnlyKeys(
|
assertThat(this.context.getBeansOfType(ReactiveAdapterRegistry.class)).containsOnlyKeys(
|
||||||
@@ -189,6 +189,10 @@ public class DelegatingWebFluxConfigurationIntegrationTests {
|
|||||||
return context -> context.registerBean(beanName, type, () -> mock(type), definition -> definition.setPrimary(true));
|
return context -> context.registerBean(beanName, type, () -> mock(type), definition -> definition.setPrimary(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private <T> Consumer<AnnotationConfigApplicationContext> registerPrimaryBean(String beanName, Class<T> type, T instance) {
|
||||||
|
return context -> context.registerBean(beanName, type, () -> instance, definition -> definition.setPrimary(true));
|
||||||
|
}
|
||||||
|
|
||||||
private void load(Consumer<AnnotationConfigApplicationContext> context) {
|
private void load(Consumer<AnnotationConfigApplicationContext> context) {
|
||||||
AnnotationConfigApplicationContext testContext = new AnnotationConfigApplicationContext();
|
AnnotationConfigApplicationContext testContext = new AnnotationConfigApplicationContext();
|
||||||
context.accept(testContext);
|
context.accept(testContext);
|
||||||
@@ -196,4 +200,5 @@ public class DelegatingWebFluxConfigurationIntegrationTests {
|
|||||||
testContext.refresh();
|
testContext.refresh();
|
||||||
this.context = testContext;
|
this.context = testContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user