public QueueOperationResponse deleteMessage(final Exchange exchange) {
        ObjectHelper.notNull(exchange, MISSING_EXCHANGE);

        final String messageId = configurationOptionsProxy.getMessageId(exchange);
        final String popReceipt = configurationOptionsProxy.getPopReceipt(exchange);
        final Duration timeout = configurationOptionsProxy.getTimeout(exchange);

        if (ObjectHelper.isEmpty(messageId)) {
            throw new IllegalArgumentException(
                    String.format("Message ID must be specified in camel headers '%s' for deleteMessage "
                                  + "operation.",
                            QueueConstants.MESSAGE_ID));
        }

        if (ObjectHelper.isEmpty(popReceipt)) {
            throw new IllegalArgumentException(
                    String.format("Message Pop Receipt must be specified in camel headers '%s' for deleteMessage "
                                  + "operation.",
                            QueueConstants.POP_RECEIPT));
        }

        return buildResponseWithEmptyBody(client.deleteMessage(messageId, popReceipt, timeout));
    }
@Test
    public void testDeleteMessage() {
        // mocking
        final HttpHeaders httpHeaders = new HttpHeaders().set("x-test-header", "123");
        when(client.deleteMessage(any(), any(), any())).thenReturn(new ResponseBase<>(null, 200, httpHeaders, null, null));

        final QueueOperations operations = new QueueOperations(configuration, client);
        final Exchange exchange = new DefaultExchange(context);

        // test if we have nothing set on exchange
        assertThrows(IllegalArgumentException.class, () -> operations.deleteMessage(exchange));

        exchange.getIn().setHeader(QueueConstants.MESSAGE_ID, "1");
        assertThrows(IllegalArgumentException.class, () -> operations.deleteMessage(exchange));

        exchange.getIn().removeHeader(QueueConstants.MESSAGE_ID);
        exchange.getIn().setHeader(QueueConstants.POP_RECEIPT, "12");
        assertThrows(IllegalArgumentException.class, () -> operations.deleteMessage(exchange));

        exchange.getIn().setHeader(QueueConstants.MESSAGE_ID, "1");
        final QueueOperationResponse response = operations.deleteMessage(exchange);

        assertNotNull(response);
        assertTrue((boolean) response.getBody());
    }