|
@@ -27,14 +27,12 @@ import org.elasticsearch.common.unit.TimeValue;
|
|
|
import org.elasticsearch.tasks.TaskId;
|
|
|
import org.elasticsearch.test.ESTestCase;
|
|
|
import org.elasticsearch.threadpool.TestThreadPool;
|
|
|
-import org.mockito.ArgumentCaptor;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
import java.util.Collections;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
import static org.hamcrest.Matchers.containsString;
|
|
|
-import static org.mockito.Matchers.eq;
|
|
|
import static org.mockito.Mockito.doThrow;
|
|
|
import static org.mockito.Mockito.mock;
|
|
|
import static org.mockito.Mockito.verify;
|
|
@@ -46,7 +44,6 @@ public class TransportHandshakerTests extends ESTestCase {
|
|
|
private TcpChannel channel;
|
|
|
private TestThreadPool threadPool;
|
|
|
private TransportHandshaker.HandshakeRequestSender requestSender;
|
|
|
- private TransportHandshaker.HandshakeResponseSender responseSender;
|
|
|
|
|
|
@Override
|
|
|
public void setUp() throws Exception {
|
|
@@ -54,11 +51,10 @@ public class TransportHandshakerTests extends ESTestCase {
|
|
|
String nodeId = "node-id";
|
|
|
channel = mock(TcpChannel.class);
|
|
|
requestSender = mock(TransportHandshaker.HandshakeRequestSender.class);
|
|
|
- responseSender = mock(TransportHandshaker.HandshakeResponseSender.class);
|
|
|
node = new DiscoveryNode(nodeId, nodeId, nodeId, "host", "host_address", buildNewFakeTransportAddress(), Collections.emptyMap(),
|
|
|
Collections.emptySet(), Version.CURRENT);
|
|
|
threadPool = new TestThreadPool("thread-poll");
|
|
|
- handshaker = new TransportHandshaker(Version.CURRENT, threadPool, requestSender, responseSender);
|
|
|
+ handshaker = new TransportHandshaker(Version.CURRENT, threadPool, requestSender);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -76,20 +72,16 @@ public class TransportHandshakerTests extends ESTestCase {
|
|
|
|
|
|
assertFalse(versionFuture.isDone());
|
|
|
|
|
|
- TcpChannel mockChannel = mock(TcpChannel.class);
|
|
|
TransportHandshaker.HandshakeRequest handshakeRequest = new TransportHandshaker.HandshakeRequest(Version.CURRENT);
|
|
|
BytesStreamOutput bytesStreamOutput = new BytesStreamOutput();
|
|
|
handshakeRequest.writeTo(bytesStreamOutput);
|
|
|
StreamInput input = bytesStreamOutput.bytes().streamInput();
|
|
|
- handshaker.handleHandshake(Version.CURRENT, mockChannel, reqId, input);
|
|
|
-
|
|
|
-
|
|
|
- ArgumentCaptor<TransportResponse> responseCaptor = ArgumentCaptor.forClass(TransportResponse.class);
|
|
|
- verify(responseSender).sendResponse(eq(Version.CURRENT), eq(mockChannel), responseCaptor.capture(),
|
|
|
- eq(reqId));
|
|
|
+ final PlainActionFuture<TransportResponse> responseFuture = PlainActionFuture.newFuture();
|
|
|
+ final TestTransportChannel channel = new TestTransportChannel(responseFuture);
|
|
|
+ handshaker.handleHandshake(channel, reqId, input);
|
|
|
|
|
|
TransportResponseHandler<TransportHandshaker.HandshakeResponse> handler = handshaker.removeHandlerForHandshake(reqId);
|
|
|
- handler.handleResponse((TransportHandshaker.HandshakeResponse) responseCaptor.getValue());
|
|
|
+ handler.handleResponse((TransportHandshaker.HandshakeResponse) responseFuture.actionGet());
|
|
|
|
|
|
assertTrue(versionFuture.isDone());
|
|
|
assertEquals(Version.CURRENT, versionFuture.actionGet());
|
|
@@ -101,7 +93,6 @@ public class TransportHandshakerTests extends ESTestCase {
|
|
|
|
|
|
verify(requestSender).sendRequest(node, channel, reqId, Version.CURRENT.minimumCompatibilityVersion());
|
|
|
|
|
|
- TcpChannel mockChannel = mock(TcpChannel.class);
|
|
|
TransportHandshaker.HandshakeRequest handshakeRequest = new TransportHandshaker.HandshakeRequest(Version.CURRENT);
|
|
|
BytesStreamOutput currentHandshakeBytes = new BytesStreamOutput();
|
|
|
handshakeRequest.writeTo(currentHandshakeBytes);
|
|
@@ -121,15 +112,12 @@ public class TransportHandshakerTests extends ESTestCase {
|
|
|
// Otherwise, we need to update the test.
|
|
|
assertEquals(currentHandshakeBytes.bytes().length(), lengthCheckingHandshake.bytes().length());
|
|
|
assertEquals(1031, futureHandshakeStream.available());
|
|
|
- handshaker.handleHandshake(Version.CURRENT, mockChannel, reqId, futureHandshakeStream);
|
|
|
+ final PlainActionFuture<TransportResponse> responseFuture = PlainActionFuture.newFuture();
|
|
|
+ final TestTransportChannel channel = new TestTransportChannel(responseFuture);
|
|
|
+ handshaker.handleHandshake(channel, reqId, futureHandshakeStream);
|
|
|
assertEquals(0, futureHandshakeStream.available());
|
|
|
|
|
|
-
|
|
|
- ArgumentCaptor<TransportResponse> responseCaptor = ArgumentCaptor.forClass(TransportResponse.class);
|
|
|
- verify(responseSender).sendResponse(eq(Version.CURRENT), eq(mockChannel), responseCaptor.capture(),
|
|
|
- eq(reqId));
|
|
|
-
|
|
|
- TransportHandshaker.HandshakeResponse response = (TransportHandshaker.HandshakeResponse) responseCaptor.getValue();
|
|
|
+ TransportHandshaker.HandshakeResponse response = (TransportHandshaker.HandshakeResponse) responseFuture.actionGet();
|
|
|
|
|
|
assertEquals(Version.CURRENT, response.getResponseVersion());
|
|
|
}
|