Refactor `AbstractSimpleTransportTestCase` and `MockTransportService` to not use `Version.transportVersion` 
test/framework/src/main/java/org/elasticsearch/transport/AbstractSimpleTransportTestCase.java
TransportService transportService,
        DiscoveryNode node,
        String action,
        TransportRequest request,
        TransportResponseHandler<T> handler
    ) throws TransportException {
        return submitRequest(transportService, node, action, request, TransportRequestOptions.EMPTY, handler);
    }
    public static <T extends TransportResponse> Future<T> submitRequest(
        TransportService transportService,
        DiscoveryNode node,
        String action,
        TransportRequest request,
        TransportRequestOptions options,
        TransportResponseHandler<T> handler
    ) throws TransportException {
        final StepListener<T> responseListener = new StepListener<>();
        final TransportResponseHandler<T> futureHandler = new ActionListenerResponseHandler<>(
            responseListener,
            handler,
            handler.executor()
        );
        responseListener.whenComplete(handler::handleResponse, e -> handler.handleException((TransportException) e));
        final PlainActionFuture<T> future = PlainActionFuture.newFuture();
        responseListener.addListener(future);
        transportService.sendRequest(node, action, request, options, futureHandler);
        return future;
    }
}