@InvokeOnHeader(Web3jConstants.ETH_COMPILE_SOLIDITY)
    void ethCompileSolidity(Message message) throws IOException {
        String sourceCode = message.getHeader(Web3jConstants.SOURCE_CODE, configuration::getSourceCode, String.class);
        Request<?, EthCompileSolidity> request = web3j.ethCompileSolidity(sourceCode);
        setRequestId(message, request);
        EthCompileSolidity response = request.send();
        boolean hasError = checkForError(message, response);
        if (!hasError) {
            message.setBody(response.getCompiledSolidity());
        }
    }
@Test
    public void ethCompileSolidityTest() throws Exception {
        EthCompileSolidity response = Mockito.mock(EthCompileSolidity.class);
        Mockito.when(mockWeb3j.ethCompileSolidity(any())).thenReturn(request);
        Mockito.when(request.send()).thenReturn(response);
        Mockito.when(response.getCompiledSolidity()).thenReturn(Collections.EMPTY_MAP);

        Exchange exchange = createExchangeWithBodyAndHeader(null, OPERATION, Web3jConstants.ETH_COMPILE_SOLIDITY);
        template.send(exchange);
        Map body = exchange.getIn().getBody(Map.class);
        assertTrue(body.isEmpty());
    }