1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.http;
18
19 import java.io.ByteArrayOutputStream;
20 import java.io.IOException;
21 import java.io.OutputStream;
22 import java.nio.charset.Charset;
23
24 import static org.mockito.Mockito.*;
25
26
27
28
29 public class MockHttpOutputMessage implements HttpOutputMessage {
30
31 private final HttpHeaders headers = new HttpHeaders();
32
33 private final ByteArrayOutputStream body = spy(new ByteArrayOutputStream());
34
35 private boolean headersWritten = false;
36
37 @Override
38 public HttpHeaders getHeaders() {
39 return (this.headersWritten ? HttpHeaders.readOnlyHttpHeaders(this.headers) : this.headers);
40 }
41
42 @Override
43 public OutputStream getBody() throws IOException {
44 this.headersWritten = true;
45 return body;
46 }
47
48 public byte[] getBodyAsBytes() {
49 this.headersWritten = true;
50 return body.toByteArray();
51 }
52
53 public String getBodyAsString(Charset charset) {
54 byte[] bytes = getBodyAsBytes();
55 return new String(bytes, charset);
56 }
57 }