Class MockClientHttpRequest

java.lang.Object
org.springframework.http.client.reactive.AbstractClientHttpRequest
org.springframework.mock.http.client.reactive.MockClientHttpRequest
All Implemented Interfaces:
ClientHttpRequest, HttpMessage, ReactiveHttpOutputMessage

public class MockClientHttpRequest extends AbstractClientHttpRequest
Mock implementation of ClientHttpRequest.
Since:
5.0
Author:
Brian Clozel, Rossen Stoyanchev
  • Constructor Details

    • MockClientHttpRequest

      public MockClientHttpRequest(HttpMethod httpMethod, String urlTemplate, Object... vars)
    • MockClientHttpRequest

      public MockClientHttpRequest(HttpMethod httpMethod, URI url)
  • Method Details

    • setWriteHandler

      public void setWriteHandler(Function<reactor.core.publisher.Flux<DataBuffer>,reactor.core.publisher.Mono<Void>> writeHandler)
      Configure a custom handler for writing the request body.

      The default write handler consumes and caches the request body so it may be accessed subsequently, e.g. in test assertions. Use this property when the request body is an infinite stream.

      Parameters:
      writeHandler - the write handler to use returning Mono<Void> when the body has been "written" (i.e. consumed).
    • getMethod

      public HttpMethod getMethod()
      Description copied from interface: ClientHttpRequest
      Return the HTTP method of the request.
    • getURI

      public URI getURI()
      Description copied from interface: ClientHttpRequest
      Return the URI of the request.
    • bufferFactory

      public DataBufferFactory bufferFactory()
      Description copied from interface: ReactiveHttpOutputMessage
      Return a DataBufferFactory that can be used to create the body.
      Returns:
      a buffer factory
      See Also:
    • getNativeRequest

      public <T> T getNativeRequest()
      Description copied from interface: ClientHttpRequest
      Return the request from the underlying HTTP library.
      Type Parameters:
      T - the expected type of the request to cast to
    • applyHeaders

      protected void applyHeaders()
      Description copied from class: AbstractClientHttpRequest
      Apply header changes from AbstractClientHttpRequest.getHeaders() to the underlying request. This method is called once only.
      Specified by:
      applyHeaders in class AbstractClientHttpRequest
    • applyCookies

      protected void applyCookies()
      Description copied from class: AbstractClientHttpRequest
      Add cookies from AbstractClientHttpRequest.getHeaders() to the underlying request. This method is called once only.
      Specified by:
      applyCookies in class AbstractClientHttpRequest
    • writeWith

      public reactor.core.publisher.Mono<Void> writeWith(Publisher<? extends DataBuffer> body)
      Description copied from interface: ReactiveHttpOutputMessage
      Use the given Publisher to write the body of the message to the underlying HTTP layer.
      Parameters:
      body - the body content publisher
      Returns:
      a Mono that indicates completion or error
    • writeAndFlushWith

      public reactor.core.publisher.Mono<Void> writeAndFlushWith(Publisher<? extends Publisher<? extends DataBuffer>> body)
      Description copied from interface: ReactiveHttpOutputMessage
      Use the given Publisher of Publishers to write the body of the HttpOutputMessage to the underlying HTTP layer, flushing after each Publisher<DataBuffer>.
      Parameters:
      body - the body content publisher
      Returns:
      a Mono that indicates completion or error
    • setComplete

      public reactor.core.publisher.Mono<Void> setComplete()
      Description copied from interface: ReactiveHttpOutputMessage
      Indicate that message handling is complete, allowing for any cleanup or end-of-processing tasks to be performed such as applying header changes made via HttpMessage.getHeaders() to the underlying HTTP message (if not applied already).

      This method should be automatically invoked at the end of message processing so typically applications should not have to invoke it. If invoked multiple times it should have no side effects.

      Returns:
      a Mono that indicates completion or error
    • getBody

      public reactor.core.publisher.Flux<DataBuffer> getBody()
    • getBodyAsString

      public reactor.core.publisher.Mono<String> getBodyAsString()
      Aggregate response data and convert to a String using the "Content-Type" charset or "UTF-8" by default.