use of jakarta.jms.TextMessage 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.TextMessage in project spring-framework by spring-projects.
the class MappingJackson2MessageConverterTests method fromTextMessage.
@Test
void fromTextMessage() throws Exception {
TextMessage textMessageMock = mock(TextMessage.class);
MyBean unmarshalled = new MyBean("bar");
String text = "{\"foo\":\"bar\"}";
given(textMessageMock.getStringProperty("__typeid__")).willReturn(MyBean.class.getName());
given(textMessageMock.getText()).willReturn(text);
MyBean result = (MyBean) converter.fromMessage(textMessageMock);
assertThat(unmarshalled).as("Invalid result").isEqualTo(result);
}
use of jakarta.jms.TextMessage in project spring-framework by spring-projects.
the class MappingJackson2MessageConverterTests method fromTextMessageWithUnknownProperty.
@Test
void fromTextMessageWithUnknownProperty() throws Exception {
TextMessage textMessageMock = mock(TextMessage.class);
MyBean unmarshalled = new MyBean("bar");
String text = "{\"foo\":\"bar\", \"unknownProperty\":\"value\"}";
given(textMessageMock.getStringProperty("__typeid__")).willReturn(MyBean.class.getName());
given(textMessageMock.getText()).willReturn(text);
MyBean result = (MyBean) converter.fromMessage(textMessageMock);
assertThat(unmarshalled).as("Invalid result").isEqualTo(result);
}
use of jakarta.jms.TextMessage in project spring-framework by spring-projects.
the class MappingJackson2MessageConverterTests method toTextMessageWithMap.
@Test
void toTextMessageWithMap() throws Exception {
converter.setTargetType(MessageType.TEXT);
TextMessage textMessageMock = mock(TextMessage.class);
Map<String, String> toBeMarshalled = new HashMap<>();
toBeMarshalled.put("foo", "bar");
given(sessionMock.createTextMessage(isA(String.class))).willReturn(textMessageMock);
converter.toMessage(toBeMarshalled, sessionMock);
verify(textMessageMock).setStringProperty("__typeid__", HashMap.class.getName());
}
Aggregations