@Test public void render() { Map<String, Object> model = Collections.singletonMap("foo", "bar"); Mono<RenderingResponse> result = RenderingResponse.create("view").modelAttributes(model).build(); MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("http://localhost")); ViewResolver viewResolver = mock(ViewResolver.class); View view = mock(View.class); when(viewResolver.resolveViewName("view", Locale.ENGLISH)).thenReturn(Mono.just(view)); when(view.render(model, null, exchange)).thenReturn(Mono.empty()); List<ViewResolver> viewResolvers = new ArrayList<>(); viewResolvers.add(viewResolver); HandlerStrategies mockConfig = mock(HandlerStrategies.class); when(mockConfig.viewResolvers()).thenReturn(viewResolvers); StepVerifier.create(result) .expectNextMatches(response -> "view".equals(response.name()) && model.equals(response.model())) .expectComplete() .verify(); }
@Override public Mono<ServerResponse> render(String name, Object... modelAttributes) { return new DefaultRenderingResponseBuilder(name) .headers(this.headers) .status(this.statusCode) .modelAttributes(modelAttributes) .build() .map(renderingResponse -> renderingResponse); }
@Override public Mono<ServerResponse> render(String name, Map<String, ?> model) { return new DefaultRenderingResponseBuilder(name) .headers(this.headers) .status(this.statusCode) .modelAttributes(model) .build() .map(renderingResponse -> renderingResponse); }
@Test public void modelAttributes() { Map<String, String> model = Collections.singletonMap("foo", "bar"); Mono<RenderingResponse> result = RenderingResponse.create("foo") .modelAttributes(model).build(); StepVerifier.create(result) .expectNextMatches(response -> "bar".equals(response.model().get("foo"))) .expectComplete() .verify(); }
@Test public void modelAttributesConventions() { Set<String> model = Collections.singleton("bar"); Mono<RenderingResponse> result = RenderingResponse.create("foo") .modelAttributes(model).build(); StepVerifier.create(result) .expectNextMatches(response -> "bar".equals(response.model().get("string"))) .expectComplete() .verify(); }