Browse Source

Do not use Mockito to mock ReactiveAdapterRegistry

pull/29837/head
Sam Brannen 3 years ago
parent
commit
c3e8ff9ce7
  1. 1
      spring-webflux/spring-webflux.gradle
  2. 13
      spring-webflux/src/test/java/org/springframework/web/reactive/config/DelegatingWebFluxConfigurationIntegrationTests.java

1
spring-webflux/spring-webflux.gradle

@ -40,7 +40,6 @@ dependencies { @@ -40,7 +40,6 @@ dependencies {
testImplementation("jakarta.validation:jakarta.validation-api")
testImplementation("io.reactivex.rxjava3:rxjava")
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.undertow:undertow-core")
testImplementation("org.apache.tomcat.embed:tomcat-embed-core")

13
spring-webflux/src/test/java/org/springframework/web/reactive/config/DelegatingWebFluxConfigurationIntegrationTests.java

@ -80,7 +80,7 @@ public class DelegatingWebFluxConfigurationIntegrationTests { @@ -80,7 +80,7 @@ public class DelegatingWebFluxConfigurationIntegrationTests {
@Test
void requestMappingHandlerAdapterWithPrimaryUsesQualifiedReactiveAdapterRegistry() {
load(registerPrimaryBean("testReactiveAdapterRegistry", ReactiveAdapterRegistry.class));
load(registerPrimaryBean("testReactiveAdapterRegistry", ReactiveAdapterRegistry.class, new ReactiveAdapterRegistry()));
RequestMappingHandlerAdapter mappingHandlerAdapter = this.context.getBean(RequestMappingHandlerAdapter.class);
assertThat(mappingHandlerAdapter.getReactiveAdapterRegistry()).isSameAs(this.context.getBean("webFluxAdapterRegistry"));
assertThat(this.context.getBeansOfType(ReactiveAdapterRegistry.class)).containsOnlyKeys(
@ -117,7 +117,7 @@ public class DelegatingWebFluxConfigurationIntegrationTests { @@ -117,7 +117,7 @@ public class DelegatingWebFluxConfigurationIntegrationTests {
@Test
void responseEntityResultHandlerWithPrimaryUsesQualifiedReactiveAdapterRegistry() {
load(registerPrimaryBean("testReactiveAdapterRegistry", ReactiveAdapterRegistry.class));
load(registerPrimaryBean("testReactiveAdapterRegistry", ReactiveAdapterRegistry.class, new ReactiveAdapterRegistry()));
ResponseEntityResultHandler responseEntityResultHandler = this.context.getBean(ResponseEntityResultHandler.class);
assertThat(responseEntityResultHandler.getAdapterRegistry()).isSameAs(this.context.getBean("webFluxAdapterRegistry"));
assertThat(this.context.getBeansOfType(ReactiveAdapterRegistry.class)).containsOnlyKeys(
@ -143,7 +143,7 @@ public class DelegatingWebFluxConfigurationIntegrationTests { @@ -143,7 +143,7 @@ public class DelegatingWebFluxConfigurationIntegrationTests {
@Test
void responseBodyResultHandlerWithPrimaryUsesQualifiedReactiveAdapterRegistry() {
load(registerPrimaryBean("testReactiveAdapterRegistry", ReactiveAdapterRegistry.class));
load(registerPrimaryBean("testReactiveAdapterRegistry", ReactiveAdapterRegistry.class, new ReactiveAdapterRegistry()));
ResponseBodyResultHandler responseBodyResultHandler = this.context.getBean(ResponseBodyResultHandler.class);
assertThat(responseBodyResultHandler.getAdapterRegistry()).isSameAs(this.context.getBean("webFluxAdapterRegistry"));
assertThat(this.context.getBeansOfType(ReactiveAdapterRegistry.class)).containsOnlyKeys(
@ -169,7 +169,7 @@ public class DelegatingWebFluxConfigurationIntegrationTests { @@ -169,7 +169,7 @@ public class DelegatingWebFluxConfigurationIntegrationTests {
@Test
void viewResolutionResultHandlerWithPrimaryUsesQualifiedReactiveAdapterRegistry() {
load(registerPrimaryBean("testReactiveAdapterRegistry", ReactiveAdapterRegistry.class));
load(registerPrimaryBean("testReactiveAdapterRegistry", ReactiveAdapterRegistry.class, new ReactiveAdapterRegistry()));
ViewResolutionResultHandler viewResolutionResultHandler = this.context.getBean(ViewResolutionResultHandler.class);
assertThat(viewResolutionResultHandler.getAdapterRegistry()).isSameAs(this.context.getBean("webFluxAdapterRegistry"));
assertThat(this.context.getBeansOfType(ReactiveAdapterRegistry.class)).containsOnlyKeys(
@ -189,6 +189,10 @@ public class DelegatingWebFluxConfigurationIntegrationTests { @@ -189,6 +189,10 @@ public class DelegatingWebFluxConfigurationIntegrationTests {
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) {
AnnotationConfigApplicationContext testContext = new AnnotationConfigApplicationContext();
context.accept(testContext);
@ -196,4 +200,5 @@ public class DelegatingWebFluxConfigurationIntegrationTests { @@ -196,4 +200,5 @@ public class DelegatingWebFluxConfigurationIntegrationTests {
testContext.refresh();
this.context = testContext;
}
}

Loading…
Cancel
Save