@Test public void multipleRoutingKeysTestBean() { ConfigurableApplicationContext context = new AnnotationConfigApplicationContext(Config.class, MultipleRoutingKeysTestBean.class); RabbitListenerContainerTestFactory factory = context.getBean(RabbitListenerContainerTestFactory.class); assertThat("one container should have been registered", factory.getListenerContainers(), hasSize(1)); RabbitListenerEndpoint endpoint = factory.getListenerContainers().get(0).getEndpoint(); assertEquals(Collections.singletonList("my_queue"), ((AbstractRabbitListenerEndpoint) endpoint).getQueueNames()); final List<Queue> queues = new ArrayList<>(context.getBeansOfType(Queue.class).values()); queues.sort(Comparator.comparing(Queue::getName)); assertThat(queues.stream().map(Queue::getName).collect(Collectors.toList()), contains("my_queue", "secondQueue", "testQueue")); assertEquals(Collections.singletonMap("foo", "bar"), queues.get(0).getArguments()); assertThat(context.getBeansOfType(org.springframework.amqp.core.Exchange.class).values(), hasSize(1)); final List<Binding> bindings = new ArrayList<>(context.getBeansOfType(Binding.class).values()); assertThat(bindings, hasSize(2)); bindings.sort(Comparator.comparing(Binding::getRoutingKey)); assertEquals("Binding [destination=my_queue, exchange=my_exchange, routingKey=red]", bindings.get(0).toString()); assertEquals("Binding [destination=my_queue, exchange=my_exchange, routingKey=yellow]", bindings.get(1).toString()); context.close(); }