@InvokeOnHeader(Web3jConstants.ETH_ACCOUNTS)
    void ethAccounts(Message message) throws IOException {
        Request<?, EthAccounts> request = web3j.ethAccounts();
        setRequestId(message, request);
        EthAccounts response = request.send();
        message.setBody(response.getAccounts());
        boolean hasError = checkForError(message, response);
        if (!hasError) {
            message.setBody(response.getAccounts());
        }
    }
@Test
    public void ethAccountsTest() throws Exception {
        EthAccounts response = Mockito.mock(EthAccounts.class);
        Mockito.when(mockWeb3j.ethAccounts()).thenReturn(request);
        Mockito.when(request.send()).thenReturn(response);
        Mockito.when(response.getAccounts()).thenReturn(Collections.emptyList());

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