public String getQueueName(final Exchange exchange) {
        return getOption(QueueExchangeHeaders::getQueueNameFromHeaders, configuration::getQueueName, exchange);
    }
@Test
    public void testIfCorrectOptionsReturnedCorrectly() {
        final QueueConfiguration configuration = new QueueConfiguration();

        // first case: when exchange is set
        final Exchange exchange = new DefaultExchange(context);
        final QueueConfigurationOptionsProxy configurationOptionsProxy = new QueueConfigurationOptionsProxy(configuration);

        exchange.getIn().setHeader(QueueConstants.QUEUE_NAME, "testQueueExchange");
        configuration.setQueueName("testQueueConfig");

        assertEquals("testQueueExchange", configurationOptionsProxy.getQueueName(exchange));

        // second class: exchange is empty
        exchange.getIn().setHeader(QueueConstants.QUEUE_NAME, null);

        assertEquals("testQueueConfig", configurationOptionsProxy.getQueueName(exchange));

        // third class: if exchange is null
        assertEquals("testQueueConfig", configurationOptionsProxy.getQueueName(null));

        // fourth class: if no option at all
        configuration.setQueueName(null);

        assertNull(configurationOptionsProxy.getQueueName(exchange));
    }