|
24 | 24 |
|
25 | 25 | import java.io.IOException; |
26 | 26 | import java.io.OutputStream; |
| 27 | +import java.lang.invoke.MethodHandles; |
| 28 | +import java.lang.invoke.MethodType; |
27 | 29 | import java.nio.charset.StandardCharsets; |
28 | 30 | import java.text.SimpleDateFormat; |
29 | 31 | import java.util.Date; |
|
38 | 40 | import static org.junit.jupiter.api.Assertions.assertNotSame; |
39 | 41 | import static org.junit.jupiter.api.Assertions.assertSame; |
40 | 42 | import static org.junit.jupiter.api.Assertions.assertTrue; |
41 | | -import static org.mockito.Mockito.CALLS_REAL_METHODS; |
42 | | -import static org.mockito.Mockito.doReturn; |
43 | 43 | import static org.mockito.Mockito.mock; |
| 44 | +import static org.mockito.Mockito.when; |
44 | 45 |
|
45 | 46 | public class NettyAsyncResponseTest { |
46 | 47 |
|
@@ -210,12 +211,17 @@ public void testGetResponseBodyAsBytesViewReturnsEmptyArray() { |
210 | 211 | } |
211 | 212 |
|
212 | 213 | @Test |
213 | | - public void testGetResponseBodyAsBytesViewDefaultImplementationDelegates() { |
| 214 | + public void testGetResponseBodyAsBytesViewDefaultImplementationDelegates() throws Throwable { |
214 | 215 | byte[] expected = "Hello World".getBytes(StandardCharsets.UTF_8); |
215 | | - Response response = mock(Response.class, CALLS_REAL_METHODS); |
216 | | - doReturn(expected).when(response).getResponseBodyAsBytes(); |
| 216 | + Response response = mock(Response.class); |
| 217 | + when(response.getResponseBodyAsBytes()).thenReturn(expected); |
217 | 218 |
|
218 | | - assertSame(expected, response.getResponseBodyAsBytesView()); |
| 219 | + byte[] actual = (byte[]) MethodHandles.privateLookupIn(Response.class, MethodHandles.lookup()) |
| 220 | + .findSpecial(Response.class, "getResponseBodyAsBytesView", MethodType.methodType(byte[].class), Response.class) |
| 221 | + .bindTo(response) |
| 222 | + .invokeExact(); |
| 223 | + |
| 224 | + assertSame(expected, actual); |
219 | 225 | } |
220 | 226 |
|
221 | 227 | @Test |
|
0 commit comments