@Test
	public void testThrowExceptionOnReceiveTimeoutIfClosed() {
		try {
			consumer = new AbstractMessageConsumer(mockTopic) {
			};
			assertNotNull("No subscription was made",
					mockTopic.getTopicSubscriber());

			FutureTask<Message> f = getMessageFuture(consumer, 50);
			consumer.close();
			Message m = f.get(150, TimeUnit.MILLISECONDS);
			assertNull("Unexpected message", m);
		} catch (InterruptedException e) {
			// This happnes if future.get is innterupted
			fail("InterruptedException was not thrown as expected, but got ExecutionException");
		} catch (ExecutionException e) {
			assertEquals(DestinationClosedException.class, e.getCause()
					.getClass());
			// Success
		} catch (TimeoutException e) {
			e.printStackTrace();
			fail("InterruptedException was not thrown as expected, but got TimeoutException");

		} catch (DestinationClosedException e) {
			fail("Unexpected exception on constructor");
		}
	}