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:
parent
dbc86ec043
commit
04b8ae921e
|
@ -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) {
|
public void setContent(byte[] content) {
|
||||||
this.content = 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
|
@Override
|
||||||
public int getContentLength() {
|
public int getContentLength() {
|
||||||
return (this.content != null ? this.content.length : -1);
|
return (this.content != null ? this.content.length : -1);
|
||||||
|
|
|
@ -58,7 +58,7 @@ public class MockHttpServletRequestTests {
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void content() throws IOException {
|
public void setContentAndGetInputStream() throws IOException {
|
||||||
byte[] bytes = "body".getBytes(Charset.defaultCharset());
|
byte[] bytes = "body".getBytes(Charset.defaultCharset());
|
||||||
request.setContent(bytes);
|
request.setContent(bytes);
|
||||||
assertEquals(bytes.length, request.getContentLength());
|
assertEquals(bytes.length, request.getContentLength());
|
||||||
|
@ -66,11 +66,43 @@ public class MockHttpServletRequestTests {
|
||||||
assertEquals("body", StreamUtils.copyToString(request.getInputStream(), Charset.defaultCharset()));
|
assertEquals("body", StreamUtils.copyToString(request.getInputStream(), Charset.defaultCharset()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setContentAndGetContentAsByteArray() throws IOException {
|
||||||
|
byte[] bytes = "request body".getBytes();
|
||||||
|
request.setContent(bytes);
|
||||||
|
assertEquals(bytes.length, request.getContentLength());
|
||||||
|
assertNotNull(request.getContentAsByteArray());
|
||||||
|
assertEquals(bytes, request.getContentAsByteArray());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setContentAndGetContentAsStringWithDefaultCharacterEncoding() throws IOException {
|
||||||
|
String palindrome = "ablE was I ere I saw Elba";
|
||||||
|
byte[] bytes = palindrome.getBytes();
|
||||||
|
request.setContent(bytes);
|
||||||
|
assertEquals(bytes.length, request.getContentLength());
|
||||||
|
assertNotNull(request.getContentAsString());
|
||||||
|
assertEquals(palindrome, request.getContentAsString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setContentAndGetContentAsStringWithExplicitCharacterEncoding() throws IOException {
|
||||||
|
String palindrome = "ablE was I ere I saw Elba";
|
||||||
|
byte[] bytes = palindrome.getBytes("UTF-16");
|
||||||
|
request.setCharacterEncoding("UTF-16");
|
||||||
|
request.setContent(bytes);
|
||||||
|
assertEquals(bytes.length, request.getContentLength());
|
||||||
|
assertNotNull(request.getContentAsString());
|
||||||
|
assertEquals(palindrome, request.getContentAsString());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void noContent() throws IOException {
|
public void noContent() throws IOException {
|
||||||
assertEquals(-1, request.getContentLength());
|
assertEquals(-1, request.getContentLength());
|
||||||
assertNotNull(request.getInputStream());
|
assertNotNull(request.getInputStream());
|
||||||
assertEquals(-1, request.getInputStream().read());
|
assertEquals(-1, request.getInputStream().read());
|
||||||
|
assertNull(request.getContentAsByteArray());
|
||||||
|
assertNull(request.getContentAsString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -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) {
|
public void setContent(byte[] content) {
|
||||||
this.content = 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
|
@Override
|
||||||
public int getContentLength() {
|
public int getContentLength() {
|
||||||
return (this.content != null ? this.content.length : -1);
|
return (this.content != null ? this.content.length : -1);
|
||||||
|
|
Loading…
Reference in New Issue