@Test
	public void testGetMessageMultipleSubscribers() {
		try {
			int noOfSubscribers = 2;
			final AtomicInteger msgCount = new AtomicInteger(0);
			final String message = "TestMessage-testGetMessage_MultipleSubscribers";
			final CountDownLatch gate = new CountDownLatch(noOfSubscribers);
			final Message expected = new MockMessage(message);
			for (int i = 0; i < noOfSubscribers; i++) {
				AsyncMessageConsumer testSubscriber = new MockQueueReceiver() {
					@Override
					public void onMessage(Message received) {

						assertNotNull("Received Null Message", received);
						assertEquals("Message values are not equal", message,
								received.getMessage());

						msgCount.incrementAndGet();
						gate.countDown();
					}
				};
				destination.addSubscriber(testSubscriber);
			}

			destination.put(expected);
			boolean messageReceived = gate.await(100, TimeUnit.MILLISECONDS);
			assertFalse("Message was delivered to all the subscribers",
					messageReceived);
			assertEquals("Unexpected number of messages received", 1,
					msgCount.get());
		} catch (InterruptedException e) {
			fail("Wait InterruptedException" + e.getMessage());
		} catch (DestinationClosedException e) {
			fail("DestinationClosedException" + e.getMessage());
		}

	}