@Override public Mono<Void> writeWith(Publisher<? extends DataBuffer> body) { return this.delegate.writeWith(body); }
@Override public Mono<Void> writeWith(Publisher<? extends DataBuffer> body) { return this.delegate.writeWith(body); }
@Test public void bodyInserter() { String body = "foo"; BodyInserter<String, ClientHttpRequest> inserter = (response, strategies) -> { byte[] bodyBytes = body.getBytes(UTF_8); DataBuffer buffer = new DefaultDataBufferFactory().wrap(bodyBytes); return response.writeWith(Mono.just(buffer)); }; ClientRequest result = ClientRequest.create(POST, URI.create("http://example.com")) .body(inserter).build(); List<HttpMessageWriter<?>> messageWriters = new ArrayList<>(); messageWriters.add(new EncoderHttpMessageWriter<>(CharSequenceEncoder.allMimeTypes())); ExchangeStrategies strategies = mock(ExchangeStrategies.class); when(strategies.messageWriters()).thenReturn(messageWriters); MockClientHttpRequest request = new MockClientHttpRequest(GET, "/"); result.writeTo(request, strategies).block(); assertNotNull(request.getBody()); StepVerifier.create(request.getBody()) .expectNextCount(1) .verifyComplete(); }
@Test public void adaptRequest() throws Exception { TestHttpHandler handler = new TestHttpHandler(response -> { response.setStatusCode(HttpStatus.OK); return response.setComplete(); }); new HttpHandlerConnector(handler).connect(HttpMethod.POST, URI.create("/custom-path"), request -> { request.getHeaders().put("custom-header", Arrays.asList("h0", "h1")); request.getCookies().add("custom-cookie", new HttpCookie("custom-cookie", "c0")); return request.writeWith(Mono.just(toDataBuffer("Custom body"))); }).block(Duration.ofSeconds(5)); MockServerHttpRequest request = (MockServerHttpRequest) handler.getSavedRequest(); assertEquals(HttpMethod.POST, request.getMethod()); assertEquals("/custom-path", request.getURI().toString()); HttpHeaders headers = request.getHeaders(); assertEquals(Arrays.asList("h0", "h1"), headers.get("custom-header")); assertEquals(new HttpCookie("custom-cookie", "c0"), request.getCookies().getFirst("custom-cookie")); assertEquals(Collections.singletonList("custom-cookie=c0"), headers.get(HttpHeaders.COOKIE)); DataBuffer buffer = request.getBody().blockFirst(Duration.ZERO); assertEquals("Custom body", DataBufferTestUtils.dumpString(buffer, UTF_8)); }
@Override public Mono<Void> writeWith(Publisher<? extends DataBuffer> body) { return this.delegate.writeWith(body); }
@Override public Mono<Void> writeWith(Publisher<? extends DataBuffer> body) { return this.delegate.writeWith(body); }