Introduce getContentAsByteArray()/getContentAsString() in MockHtttpSvltReq

In order to improve debugging and logging within test suites, this
commit introduces getContentAsByteArray() and getContentAsString()
methods in MockHttpServletRequest, analogous to the existing methods in
MockHttpServletResponse.

Issue: SPR-14717
This commit is contained in:
Sam Brannen
2016-10-03 17:33:31 +02:00
parent dbc86ec043
commit 04b8ae921e
3 changed files with 97 additions and 1 deletions

View File

@@ -371,10 +371,42 @@ public class MockHttpServletRequest implements HttpServletRequest {
}
}
/**
* Set the content of the request body as a byte array.
* @see #getContentAsByteArray()
* @see #getContentAsString()
*/
public void setContent(byte[] content) {
this.content = content;
}
/**
* Get the content of the request body as a byte array.
* @since 5.0
* @see #setContent(byte[])
* @see #getContentAsString()
*/
public byte[] getContentAsByteArray() {
return this.content;
}
/**
* Get the content of the request body as a {@code String}, using the configured
* {@linkplain #getCharacterEncoding character encoding} if present.
* @since 5.0
* @see #setContent(byte[])
* @see #getContentAsByteArray()
* @see #setCharacterEncoding(String)
*/
public String getContentAsString() throws UnsupportedEncodingException {
if (this.content == null) {
return null;
}
return (this.characterEncoding != null ?
new String(this.content, this.characterEncoding) : new String(this.content));
}
@Override
public int getContentLength() {
return (this.content != null ? this.content.length : -1);