@BeforeClass @AfterClass public static void setupAndCleanUp() { brokerIsRunning.deleteQueues("retry.test.queue"); brokerIsRunning.deleteExchanges("retry.test.exchange"); }
@AfterClass public static void teardown() { LOGGER_CONTEXT.setConfigLocation(ORIGINAL_LOGGER_CONFIG); LOGGER_CONTEXT.reconfigure(); brokerRunning.deleteQueues("log4jTest", "log4j2Test"); brokerRunning.deleteExchanges("log4j2Test", "log4j2Test_uri"); }
@Test public void testEvents() throws Exception { CachingConnectionFactory cf = new CachingConnectionFactory("localhost"); DirectMessageListenerContainer container = new DirectMessageListenerContainer(cf); container.setQueueNames(EQ1, EQ2); final List<Long> times = new ArrayList<>(); final CountDownLatch latch1 = new CountDownLatch(2); final CountDownLatch latch2 = new CountDownLatch(2); container.setApplicationEventPublisher(event -> { if (event instanceof ListenerContainerIdleEvent) { times.add(System.currentTimeMillis()); latch1.countDown(); } else if (event instanceof ListenerContainerConsumerTerminatedEvent) { latch2.countDown(); } }); container.setMessageListener(m -> { }); container.setIdleEventInterval(50L); container.setBeanName("events"); container.setConsumerTagStrategy(new Tag()); container.afterPropertiesSet(); container.start(); assertTrue(latch1.await(10, TimeUnit.SECONDS)); assertThat(times.get(1) - times.get(0), greaterThanOrEqualTo(50L)); brokerRunning.deleteQueues(EQ1, EQ2); assertTrue(latch2.await(10, TimeUnit.SECONDS)); container.stop(); cf.destroy(); }
@Test public void testArgumentsQueue() throws Exception { Queue queue = beanFactory.getBean("arguments", Queue.class); assertNotNull(queue); CachingConnectionFactory connectionFactory = new CachingConnectionFactory( brokerIsRunning.getConnectionFactory()); RabbitTemplate template = new RabbitTemplate(connectionFactory); RabbitAdmin rabbitAdmin = new RabbitAdmin(connectionFactory); rabbitAdmin.deleteQueue(queue.getName()); rabbitAdmin.declareQueue(queue); assertEquals(100L, queue.getArguments().get("x-message-ttl")); template.convertAndSend(queue.getName(), "message"); Properties props = rabbitAdmin.getQueueProperties("arguments"); if (props != null) { int n = 0; while (n++ < 200 && (Integer) props.get(RabbitAdmin.QUEUE_MESSAGE_COUNT) > 0) { Thread.sleep(50); props = rabbitAdmin.getQueueProperties("arguments"); } assertThat((Integer) props.get(RabbitAdmin.QUEUE_MESSAGE_COUNT), equalTo(0)); } connectionFactory.destroy(); brokerIsRunning.deleteQueues("arguments"); }
@Test public void testErrorHandler() throws Exception { brokerRunning.deleteQueues(Q1); Queue q1 = new Queue(Q1, true, false, false, new ArgumentBuilder() .put("x-dead-letter-exchange", "")
assertTrue(consumersOnQueue(Q2, 2)); assertTrue(activeConsumerCount(container, 4)); brokerRunning.deleteQueues(Q1); assertTrue(consumersOnQueue(Q2, 2)); assertTrue(activeConsumerCount(container, 2));