/activeobjects-bamboo-spi/src/test/java/com/atlassian/activeobjects/bamboo/BambooDataSourceProviderTest.java
Java | 104 lines | 86 code | 15 blank | 3 comment | 0 complexity | 92964c7d622135b2baa5cacac29c14f8 MD5 | raw file
Possible License(s): Apache-2.0
1package com.atlassian.activeobjects.bamboo;
2
3import com.atlassian.activeobjects.bamboo.hibernate.DialectExtractor;
4import com.atlassian.activeobjects.spi.DatabaseType;
5import com.atlassian.bamboo.persistence3.PluginHibernateSessionFactory;
6import net.sf.hibernate.dialect.DB2390Dialect;
7import net.sf.hibernate.dialect.DB2400Dialect;
8import net.sf.hibernate.dialect.DB2Dialect;
9import net.sf.hibernate.dialect.Dialect;
10import net.sf.hibernate.dialect.HSQLDialect;
11import net.sf.hibernate.dialect.MySQLDialect;
12import net.sf.hibernate.dialect.Oracle9Dialect;
13import net.sf.hibernate.dialect.OracleDialect;
14import net.sf.hibernate.dialect.PostgreSQLDialect;
15import net.sf.hibernate.dialect.SQLServerIntlDialect;
16import org.junit.After;
17import org.junit.Before;
18import org.junit.Test;
19import org.junit.runner.RunWith;
20import org.mockito.Mock;
21import org.mockito.runners.MockitoJUnitRunner;
22
23import static org.junit.Assert.assertEquals;
24import static org.mockito.Mockito.doReturn;
25
26/**
27 * Testing {@link com.atlassian.activeobjects.bamboo.BambooDataSourceProvider}
28 */
29@RunWith(MockitoJUnitRunner.class)
30public class BambooDataSourceProviderTest
31{
32 private BambooDataSourceProvider dataSourceProvider;
33
34 @Mock
35 private PluginHibernateSessionFactory sessionFactory;
36
37 @Mock
38 private DialectExtractor dialectExtractor;
39
40 @Before
41 public void setUp() throws Exception
42 {
43 dataSourceProvider = new BambooDataSourceProvider(sessionFactory, dialectExtractor);
44 }
45
46 @After
47 public void tearDown() throws Exception
48 {
49 dataSourceProvider = null;
50 }
51
52 @Test
53 public void testGetUnknownDatabaseTypeWithNullDialect() throws Exception
54 {
55 assertDatabaseTypeForDialect(DatabaseType.UNKNOWN, null);
56 }
57
58 @Test
59 public void testGetHsqlDatabaseTypeWithHsqlDialect()
60 {
61 assertDatabaseTypeForDialect(DatabaseType.HSQL, HSQLDialect.class);
62 }
63
64 @Test
65 public void testGetMySqlDatabaseTypeWithMySqlDialect()
66 {
67 assertDatabaseTypeForDialect(DatabaseType.MYSQL, com.atlassian.hibernate.dialect.MySQLDialect.class);
68 assertDatabaseTypeForDialect(DatabaseType.MYSQL, MySQLDialect.class);
69 }
70
71 @Test
72 public void testGetPostgresDatabaseTypeWithPostgresDialect()
73 {
74 assertDatabaseTypeForDialect(DatabaseType.POSTGRESQL, PostgreSQLDialect.class);
75 }
76
77 @Test
78 public void testGetOracleDatabaseTypeWithOracleDialect()
79 {
80 assertDatabaseTypeForDialect(DatabaseType.ORACLE, OracleDialect.class);
81 assertDatabaseTypeForDialect(DatabaseType.ORACLE, Oracle9Dialect.class);
82 }
83
84 @Test
85 public void testGetMsSqlDatabaseTypeWithMsSqlDialect()
86 {
87 assertDatabaseTypeForDialect(DatabaseType.MS_SQL, SQLServerIntlDialect.class);
88 }
89
90 @Test
91 public void testGetDB2DatabaseTypeWithDB2Dialect()
92 {
93 assertDatabaseTypeForDialect(DatabaseType.DB2, com.atlassian.hibernate.dialect.DB2Dialect.class);
94 assertDatabaseTypeForDialect(DatabaseType.DB2, DB2Dialect.class);
95 assertDatabaseTypeForDialect(DatabaseType.DB2, DB2390Dialect.class);
96 assertDatabaseTypeForDialect(DatabaseType.DB2, DB2400Dialect.class);
97 }
98
99 private void assertDatabaseTypeForDialect(DatabaseType databaseType, Class<? extends Dialect> dialect)
100 {
101 doReturn(dialect).when(dialectExtractor).getDialect();
102 assertEquals(databaseType, dataSourceProvider.getDatabaseType());
103 }
104}