/*
* Copyright 2005-2012 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.ws.transport.jms.support;
import java.net.URI;
import javax.jms.DeliveryMode;
import javax.jms.Message;
import org.springframework.ws.transport.jms.JmsTransportConstants;
import org.junit.Assert;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class JmsTransportUtilsTest {
@Test
public void getDestinationName() throws Exception {
URI uri = new URI("jms:RequestQueue?replyToName=RESP_QUEUE");
String destinationName = JmsTransportUtils.getDestinationName(uri);
assertEquals("Invalid destination", "RequestQueue", destinationName);
uri = new URI("jms:RequestQueue");
destinationName = JmsTransportUtils.getDestinationName(uri);
assertEquals("Invalid destination", "RequestQueue", destinationName);
}
@Test
public void getDeliveryMode() throws Exception {
URI uri = new URI("jms:RequestQueue?deliveryMode=NON_PERSISTENT");
int deliveryMode = JmsTransportUtils.getDeliveryMode(uri);
assertEquals("Invalid deliveryMode", DeliveryMode.NON_PERSISTENT, deliveryMode);
uri = new URI("jms:RequestQueue?deliveryMode=PERSISTENT");
deliveryMode = JmsTransportUtils.getDeliveryMode(uri);
assertEquals("Invalid deliveryMode", DeliveryMode.PERSISTENT, deliveryMode);
uri = new URI("jms:RequestQueue?replyToName=RESP_QUEUE");
deliveryMode = JmsTransportUtils.getDeliveryMode(uri);
assertEquals("Invalid deliveryMode", Message.DEFAULT_DELIVERY_MODE, deliveryMode);
}
@Test
public void getMessageType() throws Exception {
URI uri = new URI("jms:RequestQueue?messageType=BYTESMESSAGE");
int messageType = JmsTransportUtils.getMessageType(uri);
assertEquals("Invalid messageType", JmsTransportConstants.BYTES_MESSAGE_TYPE, messageType);
uri = new URI("jms:RequestQueue?messageType=TEXT_MESSAGE");
messageType = JmsTransportUtils.getMessageType(uri);
assertEquals("Invalid messageType", JmsTransportConstants.TEXT_MESSAGE_TYPE, messageType);
uri = new URI("jms:RequestQueue?replyToName=RESP_QUEUE");
messageType = JmsTransportUtils.getMessageType(uri);
assertEquals("Invalid messageType", JmsTransportConstants.BYTES_MESSAGE_TYPE, messageType);
}
@Test
public void getTimeToLive() throws Exception {
URI uri = new URI("jms:RequestQueue?timeToLive=100");
long timeToLive = JmsTransportUtils.getTimeToLive(uri);
assertEquals("Invalid timeToLive", 100, timeToLive);
uri = new URI("jms:RequestQueue?replyToName=RESP_QUEUE");
timeToLive = JmsTransportUtils.getTimeToLive(uri);
assertEquals("Invalid timeToLive", Message.DEFAULT_TIME_TO_LIVE, timeToLive);
}
@Test
public void getPriority() throws Exception {
URI uri = new URI("jms:RequestQueue?priority=5");
int priority = JmsTransportUtils.getPriority(uri);
assertEquals("Invalid priority", 5, priority);
uri = new URI("jms:RequestQueue?replyToName=RESP_QUEUE");
priority = JmsTransportUtils.getPriority(uri);
assertEquals("Invalid priority", Message.DEFAULT_PRIORITY, priority);
}
@Test
public void getReplyToName() throws Exception {
URI uri = new URI("jms:RequestQueue?replyToName=RESP_QUEUE");
String replyToName = JmsTransportUtils.getReplyToName(uri);
assertEquals("Invalid replyToName", "RESP_QUEUE", replyToName);
uri = new URI("jms:RequestQueue?priority=5");
replyToName = JmsTransportUtils.getReplyToName(uri);
Assert.assertNull("Invalid replyToName", replyToName);
}
@Test
public void jndi() throws Exception {
URI uri = new URI("jms:jms/REQUEST_QUEUE?replyToName=jms/REPLY_QUEUE");
String destination = JmsTransportUtils.getDestinationName(uri);
assertEquals("Invalid destination name", "jms/REQUEST_QUEUE", destination);
String replyTo = JmsTransportUtils.getReplyToName(uri);
assertEquals("Invalid reply to name", "jms/REPLY_QUEUE", replyTo);
}
}