@Override
    public Future<Message> preVote(final Endpoint endpoint, final RequestVoteRequest request,
                                   final RpcResponseClosure<RequestVoteResponse> done) {
        if (!checkConnection(endpoint, true)) {
            return onConnectionFail(endpoint, request, done, this.rpcExecutor);
        }

        return invokeWithDone(endpoint, request, done, this.nodeOptions.getElectionTimeoutMs());
    }
@Test
    public void testPreVote() {
        this.clientService.preVote(this.endpoint, RequestVoteRequest.newBuilder(). //
            setGroupId("test"). //
            setLastLogIndex(1). //
            setLastLogTerm(1). //
            setPeerId("localhost:1010"). //
            setTerm(1).setServerId("localhost:1011").setPreVote(true).build(), null);
    }