@InvokeOnHeader(Web3jConstants.ETH_PROTOCOL_VERSION)
    void ethProtocolVersion(Message message) throws IOException {
        Request<?, EthProtocolVersion> request = web3j.ethProtocolVersion();
        setRequestId(message, request);
        EthProtocolVersion response = request.send();
        boolean hasError = checkForError(message, response);
        if (!hasError) {
            message.setBody(response.getProtocolVersion());
        }
    }
@Test
    public void ethProtocolVersionTest() throws Exception {
        EthProtocolVersion response = Mockito.mock(EthProtocolVersion.class);
        Mockito.when(mockWeb3j.ethProtocolVersion()).thenReturn(request);
        Mockito.when(request.send()).thenReturn(response);
        Mockito.when(response.getProtocolVersion()).thenReturn("123");

        Exchange exchange = createExchangeWithBodyAndHeader(null, OPERATION, Web3jConstants.ETH_PROTOCOL_VERSION);
        template.send(exchange);
        String body = exchange.getIn().getBody(String.class);
        assertEquals("123", body);
    }