001 package com.mockrunner.mock.jms;
002
003 import com.mockrunner.jms.ConfigurationManager;
004 import com.mockrunner.jms.DestinationManager;
005
006 /**
007 * Used to create all types of JMS mock objects.
008 * Maintains the necessary dependencies between the mock objects.
009 * If you use the mock objects returned by this
010 * factory in your tests you can be sure that they are all
011 * up to date. If you are using JNDI for obtaining the
012 * connection factories you have to bind them to the mock JNDI context
013 * with {@link com.mockrunner.ejb.EJBTestModule#bindToContext}.
014 */
015 public class JMSMockObjectFactory
016 {
017 private DestinationManager destinationManager;
018 private ConfigurationManager configurationManager;
019 private MockQueueConnectionFactory queueConnectionFactory;
020 private MockTopicConnectionFactory topicConnectionFactory;
021 private MockConnectionFactory connectionFactory;
022
023 /**
024 * Creates a new set of mock objects.
025 */
026 public JMSMockObjectFactory()
027 {
028 destinationManager = new DestinationManager();
029 configurationManager = new ConfigurationManager();
030 queueConnectionFactory = createMockQueueConnectionFactory();
031 topicConnectionFactory = createMockTopicConnectionFactory();
032 connectionFactory = createMockConnectionFactory();
033 }
034
035 /**
036 * Creates the {@link com.mockrunner.mock.jms.MockConnectionFactory} using <code>new</code>.
037 * This method can be overridden to return a subclass of {@link com.mockrunner.mock.jms.MockConnectionFactory}.
038 * @return the {@link com.mockrunner.mock.jms.MockConnectionFactory}
039 */
040 public MockConnectionFactory createMockConnectionFactory()
041 {
042 return new MockConnectionFactory(destinationManager, configurationManager);
043 }
044
045 /**
046 * Creates the {@link com.mockrunner.mock.jms.MockTopicConnectionFactory} using <code>new</code>.
047 * This method can be overridden to return a subclass of {@link com.mockrunner.mock.jms.MockTopicConnectionFactory}.
048 * @return the {@link com.mockrunner.mock.jms.MockTopicConnectionFactory}
049 */
050 public MockTopicConnectionFactory createMockTopicConnectionFactory()
051 {
052 return new MockTopicConnectionFactory(destinationManager, configurationManager);
053 }
054
055 /**
056 * Creates the {@link com.mockrunner.mock.jms.MockQueueConnectionFactory} using <code>new</code>.
057 * This method can be overridden to return a subclass of {@link com.mockrunner.mock.jms.MockQueueConnectionFactory}.
058 * @return the {@link com.mockrunner.mock.jms.MockQueueConnectionFactory}
059 */
060 public MockQueueConnectionFactory createMockQueueConnectionFactory()
061 {
062 return new MockQueueConnectionFactory(destinationManager, configurationManager);
063 }
064
065 /**
066 * Returns the {@link com.mockrunner.jms.ConfigurationManager}.
067 * @return the {@link com.mockrunner.jms.ConfigurationManager}
068 */
069 public ConfigurationManager getConfigurationManager()
070 {
071 return configurationManager;
072 }
073
074 /**
075 * Returns the {@link com.mockrunner.jms.DestinationManager}.
076 * @return the {@link com.mockrunner.jms.DestinationManager}
077 */
078 public DestinationManager getDestinationManager()
079 {
080 return destinationManager;
081 }
082
083 /**
084 * Returns the {@link com.mockrunner.mock.jms.MockQueueConnectionFactory}.
085 * @return the {@link com.mockrunner.mock.jms.MockQueueConnectionFactory}
086 */
087 public MockQueueConnectionFactory getMockQueueConnectionFactory()
088 {
089 return queueConnectionFactory;
090 }
091
092 /**
093 * Returns the {@link com.mockrunner.mock.jms.MockTopicConnectionFactory}.
094 * @return the {@link com.mockrunner.mock.jms.MockTopicConnectionFactory}
095 */
096 public MockTopicConnectionFactory getMockTopicConnectionFactory()
097 {
098 return topicConnectionFactory;
099 }
100
101 /**
102 * Returns the {@link com.mockrunner.mock.jms.MockConnectionFactory}.
103 * @return the {@link com.mockrunner.mock.jms.MockConnectionFactory}
104 */
105 public MockConnectionFactory getMockConnectionFactory()
106 {
107 return connectionFactory;
108 }
109 }