001 package com.mockrunner.mock.jms;
002
003 import java.util.List;
004
005 import javax.jms.ConnectionConsumer;
006 import javax.jms.JMSException;
007 import javax.jms.ServerSessionPool;
008 import javax.jms.Session;
009 import javax.jms.Topic;
010 import javax.jms.TopicConnection;
011 import javax.jms.TopicSession;
012
013 import com.mockrunner.jms.ConfigurationManager;
014 import com.mockrunner.jms.DestinationManager;
015
016 /**
017 * Mock implementation of JMS <code>TopicConnection</code>.
018 * Please note: The interfaces <code>ConnectionConsumer</code>,
019 * <code>ServerSessionPool</code> and <code>ServerSession</code>
020 * are not meant for application use. Mockrunner provides very
021 * simple mock implementations but usually you won't need them.
022 */
023 public class MockTopicConnection extends MockConnection implements TopicConnection
024 {
025 public MockTopicConnection(DestinationManager destinationManager, ConfigurationManager configurationManager)
026 {
027 super(destinationManager, configurationManager);
028 }
029
030 /**
031 * Returns the list of {@link MockTopicSession} objects that were created
032 * with {@link #createTopicSession}.
033 * @return the list
034 */
035 public List getTopicSessionList()
036 {
037 return super.getSessionList();
038 }
039
040 /**
041 * Returns a {@link MockTopicSession} that was created with
042 * {@link #createTopicSession}. If there's no such
043 * {@link MockTopicSession}, <code>null</code> is returned.
044 * @param index the index of the session object
045 * @return the session object
046 */
047 public MockTopicSession getTopicSession(int index)
048 {
049 return (MockTopicSession)super.getSession(index);
050 }
051
052 public Session createSession(boolean transacted, int acknowledgeMode) throws JMSException
053 {
054 return createTopicSession(transacted, acknowledgeMode);
055 }
056
057 public TopicSession createTopicSession(boolean transacted, int acknowledgeMode) throws JMSException
058 {
059 throwJMSException();
060 MockTopicSession session = new MockTopicSession(this, transacted, acknowledgeMode);
061 sessions().add(session);
062 return session;
063 }
064
065 public ConnectionConsumer createConnectionConsumer(Topic topic, String messageSelector, ServerSessionPool sessionPool, int maxMessages) throws JMSException
066 {
067 return super.createConnectionConsumer(topic, messageSelector, sessionPool, maxMessages);
068 }
069 }