@Test public void testReceiveMessageWithJmsTemplate() { JmsMessageReceiver receiver = new JmsMessageReceiver(); receiver.setJmsTemplate(jmsTemplate); Map<String, Object> controlHeaders = new HashMap<String, Object>(); final Message<String> controlMessage = MessageBuilder.withPayload("<TestRequest><Message>Hello World!</Message></TestRequest>") .copyHeaders(controlHeaders) .build(); reset(jmsTemplate, connectionFactory, destination); jmsTemplate.setReceiveTimeout(5000L); expectLastCall().once(); expect(jmsTemplate.getDefaultDestination()).andReturn(destination).atLeastOnce(); expect(jmsTemplate.receiveAndConvert()).andReturn(controlMessage); replay(jmsTemplate, connectionFactory, destination); Message<?> receivedMessage = receiver.receive(); Assert.assertTrue(receivedMessage.equals(controlMessage)); verify(jmsTemplate, connectionFactory, destination); }