|
16 | 16 | */ |
17 | 17 | package org.apache.rocketmq.remoting.netty; |
18 | 18 |
|
| 19 | +import io.netty.bootstrap.Bootstrap; |
19 | 20 | import io.netty.channel.Channel; |
20 | 21 | import io.netty.channel.ChannelFuture; |
21 | 22 | import io.netty.channel.local.LocalChannel; |
| 23 | + |
| 24 | +import java.lang.reflect.Field; |
22 | 25 | import java.util.concurrent.CompletableFuture; |
23 | 26 | import java.util.concurrent.ExecutionException; |
24 | 27 | import java.util.concurrent.ExecutorService; |
|
50 | 53 | import static org.mockito.Mockito.doReturn; |
51 | 54 | import static org.mockito.Mockito.mock; |
52 | 55 | import static org.mockito.Mockito.never; |
| 56 | +import static org.mockito.Mockito.spy; |
53 | 57 | import static org.mockito.Mockito.times; |
54 | 58 | import static org.mockito.Mockito.verify; |
55 | 59 |
|
@@ -290,4 +294,16 @@ public void testInvokeImplFail() { |
290 | 294 | verify(rpcHookMock).doBeforeRequest(anyString(), eq(request)); |
291 | 295 | verify(rpcHookMock, never()).doAfterResponse(anyString(), eq(request), any()); |
292 | 296 | } |
| 297 | + |
| 298 | + @Test |
| 299 | + public void testIsAddressReachableFail() throws NoSuchFieldException, IllegalAccessException { |
| 300 | + Bootstrap bootstrap = spy(Bootstrap.class); |
| 301 | + Field field = NettyRemotingClient.class.getDeclaredField("bootstrap"); |
| 302 | + field.setAccessible(true); |
| 303 | + field.set(remotingClient, bootstrap); |
| 304 | + assertThat(remotingClient.isAddressReachable("0.0.0.0:8080")).isFalse(); |
| 305 | + verify(bootstrap).connect(eq("0.0.0.0"), eq(8080)); |
| 306 | + assertThat(remotingClient.isAddressReachable("[fe80::]:8080")).isFalse(); |
| 307 | + verify(bootstrap).connect(eq("[fe80::]"), eq(8080)); |
| 308 | + } |
293 | 309 | } |
0 commit comments