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
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 }