use of jakarta.jms.Message in project spring-framework by spring-projects.
the class JmsTemplateTests method doTestReceive.
private void doTestReceive(boolean explicitDestination, boolean useDefaultDestination, boolean testConverter, boolean clientAcknowledge, boolean messageSelector, boolean noLocal, long timeout) throws Exception {
JmsTemplate template = createTemplate();
template.setConnectionFactory(this.connectionFactory);
String destinationName = "testDestination";
if (useDefaultDestination) {
if (explicitDestination) {
template.setDefaultDestination(this.queue);
} else {
template.setDefaultDestinationName(destinationName);
}
}
if (noLocal) {
template.setPubSubNoLocal(true);
}
template.setReceiveTimeout(timeout);
MessageConsumer messageConsumer = mock(MessageConsumer.class);
String selectorString = "selector";
given(this.session.createConsumer(this.queue, messageSelector ? selectorString : null)).willReturn(messageConsumer);
if (!useTransactedTemplate() && !useTransactedSession()) {
given(this.session.getAcknowledgeMode()).willReturn(clientAcknowledge ? Session.CLIENT_ACKNOWLEDGE : Session.AUTO_ACKNOWLEDGE);
}
TextMessage textMessage = mock(TextMessage.class);
if (testConverter) {
given(textMessage.getText()).willReturn("Hello World!");
}
if (timeout == JmsTemplate.RECEIVE_TIMEOUT_NO_WAIT) {
given(messageConsumer.receiveNoWait()).willReturn(textMessage);
} else if (timeout == JmsTemplate.RECEIVE_TIMEOUT_INDEFINITE_WAIT) {
given(messageConsumer.receive()).willReturn(textMessage);
} else {
given(messageConsumer.receive(timeout)).willReturn(textMessage);
}
Message message = null;
String textFromMessage = null;
if (useDefaultDestination) {
if (testConverter) {
textFromMessage = (String) (messageSelector ? template.receiveSelectedAndConvert(selectorString) : template.receiveAndConvert());
} else {
message = (messageSelector ? template.receiveSelected(selectorString) : template.receive());
}
} else if (explicitDestination) {
if (testConverter) {
textFromMessage = (String) (messageSelector ? template.receiveSelectedAndConvert(this.queue, selectorString) : template.receiveAndConvert(this.queue));
} else {
message = (messageSelector ? template.receiveSelected(this.queue, selectorString) : template.receive(this.queue));
}
} else {
if (testConverter) {
textFromMessage = (String) (messageSelector ? template.receiveSelectedAndConvert(destinationName, selectorString) : template.receiveAndConvert(destinationName));
} else {
message = (messageSelector ? template.receiveSelected(destinationName, selectorString) : template.receive(destinationName));
}
}
if (testConverter) {
assertThat(textFromMessage).as("Message text should be equal").isEqualTo("Hello World!");
} else {
assertThat(textMessage).as("Messages should refer to the same object").isEqualTo(message);
}
verify(this.connection).start();
verify(this.connection).close();
if (useTransactedTemplate()) {
verify(this.session).commit();
}
verify(this.session).close();
if (!useTransactedSession() && clientAcknowledge) {
verify(textMessage).acknowledge();
}
verify(messageConsumer).close();
}
use of jakarta.jms.Message in project spring-framework by spring-projects.
the class SimpleMessageConverterTests method testToMessageSimplyReturnsMessageAsIsIfSuppliedWithMessage.
@Test
public void testToMessageSimplyReturnsMessageAsIsIfSuppliedWithMessage() throws JMSException {
Session session = mock(Session.class);
ObjectMessage message = mock(ObjectMessage.class);
SimpleMessageConverter converter = new SimpleMessageConverter();
Message msg = converter.toMessage(message, session);
assertThat(msg).isSameAs(message);
}
use of jakarta.jms.Message in project spring-framework by spring-projects.
the class SimpleMessageConverterTests method testMapConversion.
@Test
public void testMapConversion() throws JMSException {
Session session = mock(Session.class);
MapMessage message = mock(MapMessage.class);
Map<String, String> content = new HashMap<>(2);
content.put("key1", "value1");
content.put("key2", "value2");
given(session.createMapMessage()).willReturn(message);
given(message.getMapNames()).willReturn(Collections.enumeration(content.keySet()));
given(message.getObject("key1")).willReturn("value1");
given(message.getObject("key2")).willReturn("value2");
SimpleMessageConverter converter = new SimpleMessageConverter();
Message msg = converter.toMessage(content, session);
assertThat(converter.fromMessage(msg)).isEqualTo(content);
verify(message).setObject("key1", "value1");
verify(message).setObject("key2", "value2");
}
use of jakarta.jms.Message in project spring-framework by spring-projects.
the class SimpleMessageConverterTests method testSerializableConversion.
@Test
public void testSerializableConversion() throws JMSException {
Session session = mock(Session.class);
ObjectMessage message = mock(ObjectMessage.class);
Integer content = 5;
given(session.createObjectMessage(content)).willReturn(message);
given(message.getObject()).willReturn(content);
SimpleMessageConverter converter = new SimpleMessageConverter();
Message msg = converter.toMessage(content, session);
assertThat(converter.fromMessage(msg)).isEqualTo(content);
}
use of jakarta.jms.Message in project spring-framework by spring-projects.
the class SimpleMessageConverterTests method testFromMessageSimplyReturnsMessageAsIsIfSuppliedWithMessage.
@Test
public void testFromMessageSimplyReturnsMessageAsIsIfSuppliedWithMessage() throws JMSException {
Message message = mock(Message.class);
SimpleMessageConverter converter = new SimpleMessageConverter();
Object msg = converter.fromMessage(message);
assertThat(msg).isSameAs(message);
}
Aggregations