@Test public void stopProducerWithNoMessages() throws Exception { final ExchangePublisher<Object>topicProducer = exchangeRunnableFactory.createExchangeJsonPublisher("test-topic"); Assert.assertNotNull(topicProducer); final Thread topicThread = new Thread(topicProducer); topicThread.start(); Thread.sleep(2000L); Assert.assertFalse(topicProducer.isConnected()); topicProducer.shutdown(); topicThread.interrupt(); topicThread.join(); }
Assert.assertFalse(exchangeProducer.isConnected()); exchangeProducer.shutdown(); exchangeConsumer.shutdown(); producerThread.interrupt();
@Test public void testProduceConsume() throws Exception { final CountingMessageCallback cmc = new CountingMessageCallback(); final ExchangeConsumer topicConsumer = exchangeRunnableFactory.createExchangeListener("test-topic", cmc); final ExchangePublisher<Object> topicProducer = exchangeRunnableFactory.createExchangeJsonPublisher("test-topic"); final Thread consumerThread = new Thread(topicConsumer); final Thread producerThread = new Thread(topicProducer); consumerThread.start(); producerThread.start(); Thread.sleep(1000L); Assert.assertTrue(topicConsumer.isConnected()); Assert.assertFalse(topicProducer.isConnected()); final int maxCount = 1000; for (int i = 0; i < maxCount; i++) { topicProducer.put(format("hello, world %d", i)); } Thread.sleep(DRAIN_SLEEP); Assert.assertTrue(topicProducer.isEmpty()); Assert.assertEquals(maxCount, cmc.getCount()); topicProducer.shutdown(); topicConsumer.shutdown(); producerThread.interrupt(); consumerThread.interrupt(); producerThread.join(); consumerThread.join(); }
Assert.assertEquals(maxCount, cmc2.getCount()); topicProducer.shutdown(); topicConsumer1.shutdown(); topicConsumer2.shutdown();
Assert.assertFalse(topicConsumer.isConnected()); topicProducer.shutdown(); topicConsumer.shutdown(); producerThread.interrupt();
Assert.assertTrue(topicConsumer.isConnected()); topicProducer.shutdown(); topicConsumer.shutdown(); producerThread.interrupt();
Assert.assertFalse(topicConsumer.isConnected()); topicProducer.shutdown(); topicConsumer.shutdown(); producerThread.interrupt();