private StubTextMessage createSimpleJmsTextMessage(String body) { return new StubTextMessage(body); }
@Override public Object getObjectProperty(String name) throws JMSException { if (name.equals("fail")) { throw new JMSException("illegal property"); } else { return super.getObjectProperty(name); } } };
@Test public void resolveJmsMessageHeaderAccessor() throws JMSException { MessagingMessageListenerAdapter listener = createDefaultInstance(JmsMessageHeaderAccessor.class); Session session = mock(Session.class); StubTextMessage message = createSimpleJmsTextMessage("my payload"); message.setBooleanProperty("customBoolean", true); message.setJMSPriority(9); listener.onMessage(message, session); assertDefaultListenerMethodInvocation(); }
private javax.jms.Message createJmsTextMessage(String payload) { try { StubTextMessage jmsMessage = new StubTextMessage(payload); jmsMessage.setStringProperty("foo", "bar"); return jmsMessage; } catch (JMSException e) { throw new IllegalStateException("Should not happen", e); } }
@Test public void resolveHeaders() throws JMSException { MessagingMessageListenerAdapter listener = createDefaultInstance(String.class, Map.class); Session session = mock(Session.class); StubTextMessage message = createSimpleJmsTextMessage("my payload"); message.setIntProperty("customInt", 1234); message.setJMSMessageID("abcd-1234"); listener.onMessage(message, session); assertDefaultListenerMethodInvocation(); }
Destination replyTo = new Destination() {}; StubTextMessage jmsMessage = new StubTextMessage("test"); jmsMessage.setJMSCorrelationID("correlation-1234"); jmsMessage.setJMSPriority(9); jmsMessage.setJMSDestination(destination); jmsMessage.setJMSDeliveryMode(1); jmsMessage.setJMSExpiration(1234L); jmsMessage.setJMSMessageID("abcd-1234"); jmsMessage.setJMSPriority(9); jmsMessage.setJMSReplyTo(replyTo); jmsMessage.setJMSRedelivered(true); jmsMessage.setJMSType("type"); jmsMessage.setJMSTimestamp(4567L);
@Test public void resolveCustomHeaderNameAndPayloadWithHeaderNameSet() throws JMSException { MessagingMessageListenerAdapter listener = createDefaultInstance(String.class, int.class); Session session = mock(Session.class); StubTextMessage message = createSimpleJmsTextMessage("my payload"); message.setIntProperty("myCounter", 24); listener.onMessage(message, session); assertDefaultListenerMethodInvocation(); }
@Test public void processAndReply() throws JMSException { MessagingMessageListenerAdapter listener = createDefaultInstance(String.class); String body = "echo text"; String correlationId = "link-1234"; Destination replyDestination = new Destination() {}; TextMessage reply = mock(TextMessage.class); QueueSender queueSender = mock(QueueSender.class); Session session = mock(Session.class); given(session.createTextMessage(body)).willReturn(reply); given(session.createProducer(replyDestination)).willReturn(queueSender); listener.setDefaultResponseDestination(replyDestination); StubTextMessage inputMessage = createSimpleJmsTextMessage(body); inputMessage.setJMSCorrelationID(correlationId); listener.onMessage(inputMessage, session); assertDefaultListenerMethodInvocation(); verify(reply).setJMSCorrelationID(correlationId); verify(queueSender).send(reply); verify(queueSender).close(); }
@Test public void resolveCustomHeaderNameAndPayload() throws JMSException { MessagingMessageListenerAdapter listener = createDefaultInstance(String.class, int.class); Session session = mock(Session.class); StubTextMessage message = createSimpleJmsTextMessage("my payload"); message.setIntProperty("myCounter", 24); listener.onMessage(message, session); assertDefaultListenerMethodInvocation(); }
private void processAndReplyWithSendTo(MessagingMessageListenerAdapter listener, String replyDestinationName, boolean pubSubDomain, QosSettings replyQosSettings) throws JMSException { String body = "echo text"; String correlationId = "link-1234"; Destination replyDestination = new Destination() {}; DestinationResolver destinationResolver = mock(DestinationResolver.class); TextMessage reply = mock(TextMessage.class); QueueSender queueSender = mock(QueueSender.class); Session session = mock(Session.class); given(destinationResolver.resolveDestinationName(session, replyDestinationName, pubSubDomain)) .willReturn(replyDestination); given(session.createTextMessage(body)).willReturn(reply); given(session.createProducer(replyDestination)).willReturn(queueSender); listener.setDestinationResolver(destinationResolver); StubTextMessage inputMessage = createSimpleJmsTextMessage(body); inputMessage.setJMSCorrelationID(correlationId); listener.onMessage(inputMessage, session); verify(destinationResolver).resolveDestinationName(session, replyDestinationName, pubSubDomain); verify(reply).setJMSCorrelationID(correlationId); if (replyQosSettings != null) { verify(queueSender).send(reply, replyQosSettings.getDeliveryMode(), replyQosSettings.getPriority(), replyQosSettings.getTimeToLive()); } else { verify(queueSender).send(reply); } verify(queueSender).close(); }
@Override public Message toMessage(Object object, Session session) throws JMSException, MessageConversionException { return new StubTextMessage(object.toString().toUpperCase()); }
@Test public void resolveHeaderAndPayload() throws JMSException { MessagingMessageListenerAdapter listener = createDefaultInstance(String.class, int.class); Session session = mock(Session.class); StubTextMessage message = createSimpleJmsTextMessage("my payload"); message.setIntProperty("myCounter", 55); listener.onMessage(message, session); assertDefaultListenerMethodInvocation(); }
@Test public void attemptToReadDisallowedCorrelationIdPropertyIsNotFatal() throws JMSException { javax.jms.Message jmsMessage = new StubTextMessage() { @Override public String getJMSCorrelationID() throws JMSException { throw new JMSException("illegal property"); } }; assertAttemptReadDisallowedPropertyIsNotFatal(jmsMessage, JmsHeaders.CORRELATION_ID); }
@Test public void jmsTimestampMappedToHeader() throws JMSException { long timestamp = 123L; javax.jms.Message jmsMessage = new StubTextMessage(); jmsMessage.setJMSTimestamp(timestamp); assertInboundHeader(jmsMessage, JmsHeaders.TIMESTAMP, timestamp); }
@Test public void jmsExpirationMappedToHeader() throws JMSException { long expiration = 1000L; javax.jms.Message jmsMessage = new StubTextMessage(); jmsMessage.setJMSExpiration(expiration); assertInboundHeader(jmsMessage, JmsHeaders.EXPIRATION, expiration); }
@Test public void contentTypePropertyMappedToHeader() throws JMSException { javax.jms.Message jmsMessage = new StubTextMessage(); jmsMessage.setStringProperty("content_type", "foo"); assertInboundHeader(jmsMessage, MessageHeaders.CONTENT_TYPE, "foo"); }
@Test public void userDefinedPropertyMappedToHeader() throws JMSException { javax.jms.Message jmsMessage = new StubTextMessage(); jmsMessage.setIntProperty("foo", 123); assertInboundHeader(jmsMessage, "foo", 123); }
@Test public void jmsDeliveryModeMappedToHeader() throws JMSException { int deliveryMode = 1; javax.jms.Message jmsMessage = new StubTextMessage(); jmsMessage.setJMSDeliveryMode(deliveryMode); assertInboundHeader(jmsMessage, JmsHeaders.DELIVERY_MODE, deliveryMode); }
@Test public void jmsMessageIdMappedToHeader() throws JMSException { String messageId = "ID:ABC-123"; javax.jms.Message jmsMessage = new StubTextMessage(); jmsMessage.setJMSMessageID(messageId); assertInboundHeader(jmsMessage, JmsHeaders.MESSAGE_ID, messageId); }
@Test public void jmsPriorityMappedToHeader() throws JMSException { int priority = 8; javax.jms.Message jmsMessage = new StubTextMessage(); jmsMessage.setJMSPriority(priority); assertInboundHeader(jmsMessage, JmsHeaders.PRIORITY, priority); }