diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestMappingViewResolutionIntegrationTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestMappingViewResolutionIntegrationTests.java index 16db9e768b8..ceab6666d6c 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestMappingViewResolutionIntegrationTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestMappingViewResolutionIntegrationTests.java @@ -18,9 +18,7 @@ package org.springframework.web.reactive.result.method.annotation; import java.io.IOException; import java.net.HttpURLConnection; -import java.net.Proxy; import java.net.URI; -import java.net.URL; import java.util.Optional; import org.junit.Test; @@ -41,8 +39,9 @@ import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.client.RestTemplate; +import org.springframework.web.reactive.config.EnableWebFlux; import org.springframework.web.reactive.config.ViewResolverRegistry; -import org.springframework.web.reactive.config.WebFluxConfigurationSupport; +import org.springframework.web.reactive.config.WebFluxConfigurer; import org.springframework.web.reactive.result.view.freemarker.FreeMarkerConfigurer; import org.springframework.web.server.ServerWebExchange; @@ -102,12 +101,13 @@ public class RequestMappingViewResolutionIntegrationTests extends AbstractReques @Configuration + @EnableWebFlux @ComponentScan(resourcePattern = "**/RequestMappingViewResolutionIntegrationTests$*.class") @SuppressWarnings({"unused", "WeakerAccess"}) - static class WebConfig extends WebFluxConfigurationSupport { + static class WebConfig implements WebFluxConfigurer { @Override - protected void configureViewResolvers(ViewResolverRegistry registry) { + public void configureViewResolvers(ViewResolverRegistry registry) { registry.freeMarker(); } @@ -122,7 +122,7 @@ public class RequestMappingViewResolutionIntegrationTests extends AbstractReques @Controller - @SuppressWarnings("unused") + @SuppressWarnings({"unused", "OptionalUsedAsFieldOrParameterType"}) private static class TestController { @GetMapping("/html") diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/view/UrlBasedViewResolverTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/view/UrlBasedViewResolverTests.java index 2be460f7279..84296cfd803 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/view/UrlBasedViewResolverTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/view/UrlBasedViewResolverTests.java @@ -16,6 +16,7 @@ package org.springframework.web.reactive.result.view; +import java.time.Duration; import java.util.Locale; import java.util.Map; @@ -41,31 +42,32 @@ public class UrlBasedViewResolverTests { private UrlBasedViewResolver resolver; + @Before public void setup() { StaticApplicationContext context = new StaticApplicationContext(); context.refresh(); - resolver = new UrlBasedViewResolver(); - resolver.setApplicationContext(context); + this.resolver = new UrlBasedViewResolver(); + this.resolver.setApplicationContext(context); } @Test public void viewNames() throws Exception { - resolver.setViewClass(TestView.class); - resolver.setViewNames("my*"); + this.resolver.setViewClass(TestView.class); + this.resolver.setViewNames("my*"); - Mono mono = resolver.resolveViewName("my-view", Locale.US); + Mono mono = this.resolver.resolveViewName("my-view", Locale.US); assertNotNull(mono.block()); - mono = resolver.resolveViewName("not-my-view", Locale.US); + mono = this.resolver.resolveViewName("not-my-view", Locale.US); assertNull(mono.block()); } @Test public void redirectView() throws Exception { - Mono mono = resolver.resolveViewName("redirect:foo", Locale.US); - assertNotNull(mono.block()); + Mono mono = this.resolver.resolveViewName("redirect:foo", Locale.US); + StepVerifier.create(mono) .consumeNextWith(view -> { assertEquals(RedirectView.class, view.getClass()); @@ -73,14 +75,15 @@ public class UrlBasedViewResolverTests { assertEquals(redirectView.getUrl(), "foo"); assertEquals(redirectView.getStatusCode(), HttpStatus.SEE_OTHER); }) - .expectComplete(); + .expectComplete() + .verify(Duration.ZERO); } @Test public void customizedRedirectView() throws Exception { - resolver.setRedirectViewProvider(url -> new RedirectView(url, HttpStatus.FOUND)); - Mono mono = resolver.resolveViewName("redirect:foo", Locale.US); - assertNotNull(mono.block()); + this.resolver.setRedirectViewProvider(url -> new RedirectView(url, HttpStatus.FOUND)); + Mono mono = this.resolver.resolveViewName("redirect:foo", Locale.US); + StepVerifier.create(mono) .consumeNextWith(view -> { assertEquals(RedirectView.class, view.getClass()); @@ -88,7 +91,8 @@ public class UrlBasedViewResolverTests { assertEquals(redirectView.getUrl(), "foo"); assertEquals(redirectView.getStatusCode(), HttpStatus.FOUND); }) - .expectComplete(); + .expectComplete() + .verify(Duration.ZERO); } @@ -102,6 +106,7 @@ public class UrlBasedViewResolverTests { @Override protected Mono renderInternal(Map attributes, MediaType contentType, ServerWebExchange exchange) { + return Mono.empty(); } } diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/view/ViewResolutionResultHandlerTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/view/ViewResolutionResultHandlerTests.java index 9165577f971..cd270867998 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/view/ViewResolutionResultHandlerTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/view/ViewResolutionResultHandlerTests.java @@ -65,7 +65,9 @@ import static org.springframework.core.ResolvableType.*; import static org.springframework.http.MediaType.*; /** - * Unit tests for {@link ViewResolutionResultHandler}. + * ViewResolutionResultHandler relying on a canned {@link TestViewResolver} + * or a (Mockito) "mock". + * * @author Rossen Stoyanchev */ public class ViewResolutionResultHandlerTests {