@Test public void testShutdown() throws Exception { final MessageDispatchSender messageDispatchSender = new MessageDispatchSender(); messageDispatchSender.shutdown(); messageDispatchSender.set(SimpleMessage.class, m_handler); messageDispatchSender.shutdown(); verify(m_handler).shutdown(); messageDispatchSender.addFallback(m_handler2); messageDispatchSender.addFallback(m_handler2); messageDispatchSender.set(OtherMessage.class, m_responder); final BlockingHandler<Message> blockingHandler2 = new AbstractBlockingHandler<Message>() { public Message blockingSend(Message message) throws CommunicationException { return null; } }; messageDispatchSender.set(Message.class, blockingHandler2); messageDispatchSender.shutdown(); verify(m_handler, times(2)).shutdown(); verify(m_handler2, times(2)).shutdown(); verify(m_responder).shutdown(); verifyNoMoreInteractions(m_handler, m_handler2, m_responder); }