### Question:
JmsSession implements AutoCloseable, Session, QueueSession, TopicSession, JmsMessageDispatcher { @Override public QueueReceiver createReceiver(Queue queue) throws JMSException { checkClosed(); checkDestination(queue); JmsDestination dest = JmsMessageTransformation.transformDestination(connection, queue); JmsQueueReceiver result = new JmsQueueReceiver(getNextConsumerId(), this, dest, null); result.init(); return result; } protected  JmsSession(JmsConnection connection, JmsSessionId sessionId, int acknowledgementMode); @Override int getAcknowledgeMode(); @Override boolean getTransacted(); @Override MessageListener getMessageListener(); @Override void setMessageListener(MessageListener listener); @Override void recover(); @Override void commit(); @Override void rollback(); @Override void close(); @Override MessageConsumer createConsumer(Destination destination); @Override MessageConsumer createConsumer(Destination destination, String messageSelector); @Override MessageConsumer createConsumer(Destination destination, String messageSelector, boolean noLocal); @Override QueueReceiver createReceiver(Queue queue); @Override QueueReceiver createReceiver(Queue queue, String messageSelector); @Override QueueBrowser createBrowser(Queue destination); @Override QueueBrowser createBrowser(Queue destination, String messageSelector); @Override TopicSubscriber createSubscriber(Topic topic); @Override TopicSubscriber createSubscriber(Topic topic, String messageSelector, boolean noLocal); @Override TopicSubscriber createDurableSubscriber(Topic topic, String name); @Override TopicSubscriber createDurableSubscriber(Topic topic, String name, String messageSelector, boolean noLocal); @Override MessageConsumer createDurableConsumer(Topic topic, String name); @Override MessageConsumer createDurableConsumer(Topic topic, String name, String messageSelector, boolean noLocal); @Override void unsubscribe(String name); @Override MessageConsumer createSharedConsumer(Topic topic, String name); @Override MessageConsumer createSharedConsumer(Topic topic, String name, String selector); @Override MessageConsumer createSharedDurableConsumer(Topic topic, String name); @Override MessageConsumer createSharedDurableConsumer(Topic topic, String name, String selector); @Override MessageProducer createProducer(Destination destination); @Override QueueSender createSender(Queue queue); @Override TopicPublisher createPublisher(Topic topic); @Override BytesMessage createBytesMessage(); @Override MapMessage createMapMessage(); @Override Message createMessage(); @Override ObjectMessage createObjectMessage(); @Override ObjectMessage createObjectMessage(Serializable object); @Override StreamMessage createStreamMessage(); @Override TextMessage createTextMessage(); @Override TextMessage createTextMessage(String text); @Override Queue createQueue(String queueName); @Override Topic createTopic(String topicName); @Override TemporaryQueue createTemporaryQueue(); @Override TemporaryTopic createTemporaryTopic(); @Override void run(); boolean isClosed(); boolean isTransacted(); boolean isClientAcknowledge(); boolean isAutoAcknowledge(); boolean isDupsOkAcknowledge(); boolean isNoAcknowledge(); boolean isIndividualAcknowledge(); static void checkDestination(Destination dest); JmsConnection getConnection(); JmsMessageIDPolicy getMessageIDPolicy(); JmsPrefetchPolicy getPrefetchPolicy(); JmsPresettlePolicy getPresettlePolicy(); JmsRedeliveryPolicy getRedeliveryPolicy(); JmsDeserializationPolicy getDeserializationPolicy(); void setTransactionContext(JmsTransactionContext transactionContext); JmsTransactionContext getTransactionContext(); @Override void onInboundMessage(JmsInboundMessageDispatch envelope);  }### Answer:
@Test(timeout = 10000, expected=InvalidDestinationException.class) public void testCreateReceiverNullDestinationThrowsIDE() throws JMSException { JmsSession session = (JmsSession) connection.createSession(false, Session.AUTO_ACKNOWLEDGE); session.createReceiver(null); }