package net.lr.karaf.jms.service;
import java.util.Enumeration;
import java.util.List;
import javax.jms.Connection;
import javax.jms.JMSException;
import javax.jms.Message;
import net.lr.karaf.jms.service.activemq.ActiveMQJmsServiceFactory;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.junit.Assert;
import org.junit.Test;
public class JmsServiceTest extends Assert {
private static final String TEST_QUEUE_NAME = "test";
private Connection createAndStartConnection() throws JMSException {
ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory("vm://test?broker.persistent=false");
Connection con = cf.createConnection();
con.start();
return con;
}
@Test
public void testBrowse() throws Exception {
Connection con = createAndStartConnection();
JmsService jmsService = new JmsService();
jmsService.setExtJmsServiceFactory(new ActiveMQJmsServiceFactory());
jmsService.setConnection(con);
jmsService.send(TEST_QUEUE_NAME, "testContent", "reply");
Enumeration<JmsMessage> messages = jmsService.browseQueue(TEST_QUEUE_NAME, null);
JmsMessage message = messages.nextElement();
assertEquals(0, message.getExpiration());
assertNull(message.getCorrelationID());
assertEquals(Message.DEFAULT_DELIVERY_MODE, message.getDeliveryMode());
assertEquals("queue://" + TEST_QUEUE_NAME, message.getDestination());
assertNotNull(message.getMessageId());
assertEquals(Message.DEFAULT_PRIORITY, message.getPriority());
assertEquals("queue://reply", message.getReplyTo());
assertNotNull(message.getTimestamp());
assertEquals(null, message.getType());
assertEquals("testContent", message.getContent());
assertFalse(messages.hasMoreElements());
con.close();
}
@Test
public void testListQueues() throws Exception {
Connection con = createAndStartConnection();
JmsService jmsService = new JmsService();
jmsService.setExtJmsServiceFactory(new ActiveMQJmsServiceFactory());
jmsService.setConnection(con);
jmsService.send(TEST_QUEUE_NAME, "testContent", null);
List<String> listQueues = jmsService.listQueues();
listQueues.contains(TEST_QUEUE_NAME);
con.close();
}
}