Class MockServerHttpResponse
- All Implemented Interfaces:
HttpMessage
,ReactiveHttpOutputMessage
,ServerHttpResponse
AbstractServerHttpResponse
for use in tests without
an actual server.
By default response content is consumed in full upon writing and cached
for subsequent access, however it is also possible to set a custom
writeHandler
.
- Since:
- 5.0
- Author:
- Rossen Stoyanchev
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
Add cookies fromAbstractServerHttpResponse.getHeaders()
to the underlying response.protected void
Invoked when the response is getting committed allowing subclasses to make apply header values to the underlying response.protected void
Write the status code to the underlying response.reactor.core.publisher.Flux<DataBuffer>
getBody()
Return the response body or an error stream if the body was not set.reactor.core.publisher.Mono<String>
Aggregate response data and convert to a String using the "Content-Type" charset or "UTF-8" by default.<T> T
Return the underlying server response.reactor.core.publisher.Mono<Void>
Indicate that message handling is complete, allowing for any cleanup or end-of-processing tasks to be performed such as applying header changes made viaHttpMessage.getHeaders()
to the underlying HTTP message (if not applied already).void
setWriteHandler
(Function<reactor.core.publisher.Flux<DataBuffer>, reactor.core.publisher.Mono<Void>> writeHandler) Configure a custom handler to consume the response body.protected reactor.core.publisher.Mono<Void>
writeAndFlushWithInternal
(Publisher<? extends Publisher<? extends DataBuffer>> body) Write to the underlying the response, and flush after eachPublisher<DataBuffer>
.protected reactor.core.publisher.Mono<Void>
writeWithInternal
(Publisher<? extends DataBuffer> body) Write to the underlying the response.Methods inherited from class org.springframework.http.server.reactive.AbstractServerHttpResponse
addCookie, beforeCommit, bufferFactory, doCommit, doCommit, getCookies, getHeaders, getRawStatusCode, getStatusCode, isCommitted, setRawStatusCode, setStatusCode, touchDataBuffer, writeAndFlushWith, writeWith
-
Constructor Details
-
MockServerHttpResponse
public MockServerHttpResponse() -
MockServerHttpResponse
-
-
Method Details
-
setWriteHandler
public void setWriteHandler(Function<reactor.core.publisher.Flux<DataBuffer>, reactor.core.publisher.Mono<Void>> writeHandler) Configure a custom handler to consume the response body.By default, response body content is consumed in full and cached for subsequent access in tests. Use this option to take control over how the response body is consumed.
- Parameters:
writeHandler
- the write handler to use returningMono<Void>
when the body has been "written" (i.e. consumed).
-
getNativeResponse
public <T> T getNativeResponse()Description copied from class:AbstractServerHttpResponse
Return the underlying server response.Note: This is exposed mainly for internal framework use such as WebSocket upgrades in the spring-webflux module.
- Specified by:
getNativeResponse
in classAbstractServerHttpResponse
-
applyStatusCode
protected void applyStatusCode()Description copied from class:AbstractServerHttpResponse
Write the status code to the underlying response. This method is called once only.- Specified by:
applyStatusCode
in classAbstractServerHttpResponse
-
applyHeaders
protected void applyHeaders()Description copied from class:AbstractServerHttpResponse
Invoked when the response is getting committed allowing subclasses to make apply header values to the underlying response.Note that most subclasses use an
HttpHeaders
instance that wraps an adapter to the native response headers such that changes are propagated to the underlying response on the go. That means this callback is typically not used other than for specialized updates such as setting the contentType or characterEncoding fields in a Servlet response.- Specified by:
applyHeaders
in classAbstractServerHttpResponse
-
applyCookies
protected void applyCookies()Description copied from class:AbstractServerHttpResponse
Add cookies fromAbstractServerHttpResponse.getHeaders()
to the underlying response. This method is called once only.- Specified by:
applyCookies
in classAbstractServerHttpResponse
-
writeWithInternal
Description copied from class:AbstractServerHttpResponse
Write to the underlying the response.- Specified by:
writeWithInternal
in classAbstractServerHttpResponse
- Parameters:
body
- the publisher to write with
-
writeAndFlushWithInternal
protected reactor.core.publisher.Mono<Void> writeAndFlushWithInternal(Publisher<? extends Publisher<? extends DataBuffer>> body) Description copied from class:AbstractServerHttpResponse
Write to the underlying the response, and flush after eachPublisher<DataBuffer>
.- Specified by:
writeAndFlushWithInternal
in classAbstractServerHttpResponse
- Parameters:
body
- the publisher to write and flush with
-
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 viaHttpMessage.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.
- Specified by:
setComplete
in interfaceReactiveHttpOutputMessage
- Overrides:
setComplete
in classAbstractServerHttpResponse
- Returns:
- a
Mono
that indicates completion or error
-
getBody
Return the response body or an error stream if the body was not set. -
getBodyAsString
Aggregate response data and convert to a String using the "Content-Type" charset or "UTF-8" by default.
-