/activeobjects-bamboo-spi/src/test/java/com/atlassian/activeobjects/bamboo/BambooDataSourceProviderTest.java

https://bitbucket.org/activeobjects/ao-plugin · Java · 104 lines · 86 code · 15 blank · 3 comment · 0 complexity · 92964c7d622135b2baa5cacac29c14f8 MD5 · raw file

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