View Javadoc
1   package com.atlassian.activeobjects.internal;
2   
3   import com.atlassian.activeobjects.config.ActiveObjectsConfiguration;
4   import com.atlassian.activeobjects.spi.DatabaseType;
5   import net.java.ao.DatabaseProvider;
6   import net.java.ao.SchemaConfiguration;
7   import net.java.ao.schema.NameConverters;
8   import net.java.ao.schema.TableNameConverter;
9   import org.junit.After;
10  import org.junit.Before;
11  import org.junit.Test;
12  import org.junit.runner.RunWith;
13  import org.mockito.Mock;
14  import org.mockito.junit.MockitoJUnitRunner;
15  
16  import javax.sql.DataSource;
17  
18  import static org.junit.Assert.assertNotNull;
19  import static org.mockito.Mockito.mock;
20  import static org.mockito.Mockito.verify;
21  import static org.mockito.Mockito.when;
22  
23  /**
24   * Testing {@link com.atlassian.activeobjects.internal.EntityManagerFactoryImpl}
25   */
26  @RunWith(MockitoJUnitRunner.class)
27  public final class EntityManagerFactoryImplTest {
28      private EntityManagerFactory entityManagerFactory;
29  
30      @Mock
31      private DatabaseProviderFactory databaseProviderFactory;
32  
33      @Before
34      public void setUp() {
35          entityManagerFactory = new EntityManagerFactoryImpl(databaseProviderFactory);
36      }
37  
38      @After
39      public void tearDown() {
40          entityManagerFactory = null;
41          databaseProviderFactory = null;
42      }
43  
44      @Test
45      public void testGetEntityManager() {
46          final String schema = null;
47          final DataSource dataSource = mock(DataSource.class);
48          final DatabaseType databaseType = DatabaseType.UNKNOWN;
49          final DatabaseProvider databaseProvider = mock(DatabaseProvider.class);
50  
51          final ActiveObjectsConfiguration configuration = getMockConfiguration();
52  
53          when(databaseProviderFactory.getDatabaseProvider(dataSource, databaseType, schema)).thenReturn(databaseProvider);
54          assertNotNull(entityManagerFactory.getEntityManager(dataSource, databaseType, schema, configuration));
55  
56          verify(databaseProviderFactory).getDatabaseProvider(dataSource, databaseType, schema);
57      }
58  
59      private ActiveObjectsConfiguration getMockConfiguration() {
60          final NameConverters nameConverters = mock(NameConverters.class);
61          final TableNameConverter tableNameConverter = mock(TableNameConverter.class);
62          final SchemaConfiguration schemaConfiguration = mock(SchemaConfiguration.class);
63  
64          final ActiveObjectsConfiguration configuration = mock(ActiveObjectsConfiguration.class);
65          when(configuration.getNameConverters()).thenReturn(nameConverters);
66          when(nameConverters.getTableNameConverter()).thenReturn(tableNameConverter);
67          when(configuration.getSchemaConfiguration()).thenReturn(schemaConfiguration);
68          return configuration;
69      }
70  }