001 package com.mockrunner.mock.connector.cci; 002 003 import com.mockrunner.connector.InteractionHandler; 004 005 /** 006 * Used to create all types of JCA mock objects. 007 * Maintains the necessary dependencies between the mock objects. 008 * If you use the mock objects returned by this 009 * factory in your tests you can be sure that they are all 010 * up to date. If you are using JNDI for obtaining the 011 * <code>MockConnectionFactory</code> you have to bind them to 012 * the mock JNDI context with {@link com.mockrunner.ejb.EJBTestModule#bindToContext}. 013 */ 014 public class ConnectorMockObjectFactory 015 { 016 private MockConnectionFactory connectionFactory; 017 private MockConnection connection; 018 private InteractionHandler interactionHandler; 019 020 public ConnectorMockObjectFactory() 021 { 022 connectionFactory = createMockConnectionFactory(); 023 connection = createMockConnection(); 024 connectionFactory.setConnection(connection); 025 interactionHandler = new InteractionHandler(); 026 connection.setInteractionHandler(interactionHandler); 027 } 028 029 /** 030 * Creates the {@link com.mockrunner.mock.connector.cci.MockConnection} using <code>new</code>. 031 * This method can be overridden to return a subclass of {@link com.mockrunner.mock.connector.cci.MockConnection}. 032 * @return the {@link com.mockrunner.mock.connector.cci.MockConnection} 033 */ 034 public MockConnection createMockConnection() 035 { 036 return new MockConnection(); 037 } 038 039 /** 040 * Creates the {@link com.mockrunner.mock.connector.cci.MockConnectionFactory} using <code>new</code>. 041 * This method can be overridden to return a subclass of {@link com.mockrunner.mock.connector.cci.MockConnectionFactory}. 042 * @return the {@link com.mockrunner.mock.connector.cci.MockConnectionFactory} 043 */ 044 public MockConnectionFactory createMockConnectionFactory() 045 { 046 return new MockConnectionFactory(); 047 } 048 049 /** 050 * Returns the {@link com.mockrunner.mock.connector.cci.MockConnection}. 051 * @return the {@link com.mockrunner.mock.connector.cci.MockConnection} 052 */ 053 public MockConnection getMockConnection() 054 { 055 return connection; 056 } 057 058 /** 059 * Returns the {@link com.mockrunner.mock.connector.cci.MockConnectionFactory}. 060 * @return the {@link com.mockrunner.mock.connector.cci.MockConnectionFactory} 061 */ 062 public MockConnectionFactory getMockConnectionFactory() 063 { 064 return connectionFactory; 065 } 066 067 /** 068 * Returns the {@link com.mockrunner.connector.InteractionHandler}. 069 * @return the {@link com.mockrunner.connector.InteractionHandler} 070 */ 071 public InteractionHandler getInteractionHandler() 072 { 073 return interactionHandler; 074 } 075 }