@InvokeOnHeader(Web3jConstants.SHH_GET_MESSAGES)
    void shhGetMessages(Message message) throws IOException {
        BigInteger filterId = message.getHeader(Web3jConstants.FILTER_ID, configuration::getFilterId, BigInteger.class);
        Request<?, ShhMessages> request = web3j.shhGetMessages(filterId);
        setRequestId(message, request);
        ShhMessages response = request.send();
        boolean hasError = checkForError(message, response);
        if (!hasError) {
            message.setBody(response.getMessages());
        }
    }
@Test
    public void shhGetMessagesTest() throws Exception {
        ShhMessages response = Mockito.mock(ShhMessages.class);
        Mockito.when(mockWeb3j.shhGetMessages(any())).thenReturn(request);
        Mockito.when(request.send()).thenReturn(response);
        Mockito.when(response.getMessages()).thenReturn(Collections.EMPTY_LIST);

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