package org.unitils.database.config;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.unitils.core.UnitilsException;
import org.unitils.reflectionassert.ReflectionAssert;
import org.unitils.reflectionassert.ReflectionComparatorMode;
/**
* DatabaseConfigurationsTest.
*
* @author wiw
*
* @since 3.3
*
*/
public class DatabaseConfigurationsTest {
private DatabaseConfigurations databaseConfigurations;
private DatabaseConfiguration config1, config2;
/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
DatabaseConfiguration configDefault = new DatabaseConfiguration("DatabaseDefault", "hsqldb", "org.hsqldb.jdbcDriver", "jdbc:hsqldb:mem:unitils", "sa", "", "defaultSchemaName", Arrays.asList("schemaNames"), true, true);
config1 = new DatabaseConfiguration("Database1", "hsqldb", "org.hsqldb.jdbcDriver", "jdbc:hsqldb:mem:unitils", "sa", "", "defaultSchemaName", Arrays.asList("schemaNames"), true, true);
config2 = new DatabaseConfiguration("Database2", "hsqldb", "org.hsqldb.jdbcDriver", "jdbc:hsqldb:mem:unitils", "sa", "", "defaultSchemaName", Arrays.asList("schemaNames"), true, true);
Map<String, DatabaseConfiguration> mapConfigs = new HashMap<String, DatabaseConfiguration>();
mapConfigs.put("Database1", config1);
mapConfigs.put("Database2", config2);
databaseConfigurations = new DatabaseConfigurations(configDefault, mapConfigs);
}
@Test
public void testGetDatabaseConfigurationDefault() {
Assert.assertEquals("DatabaseDefault", databaseConfigurations.getDatabaseConfiguration().getDatabaseName());
}
@Test
public void testGetDatabaseConfigurationWithDatabaseName() {
Assert.assertEquals("DatabaseDefault", databaseConfigurations.getDatabaseConfiguration("").getDatabaseName());
Assert.assertEquals("Database1", databaseConfigurations.getDatabaseConfiguration("Database1").getDatabaseName());
}
@Test(expected = UnitilsException.class)
public void testGetDatabaseConfigurationWithDatabaseNameException() {
databaseConfigurations.getDatabaseConfiguration("databaseException");
}
@Test
public void testGetDatabaseNames() {
ReflectionAssert.assertReflectionEquals(Arrays.asList("Database1", "Database2"), databaseConfigurations.getDatabaseNames(), ReflectionComparatorMode.LENIENT_ORDER);
}
@Test
public void testGetDatabaseConfigurations() {
ReflectionAssert.assertReflectionEquals(Arrays.asList(config1, config2), databaseConfigurations.getDatabaseConfigurations(), ReflectionComparatorMode.LENIENT_ORDER);
}
@Test
public void testConfigurationToString() {
String expected = "database name: 'Database1', driver class name: 'org.hsqldb.jdbcDriver', url: 'jdbc:hsqldb:mem:unitils', user name: 'sa', password: <not shown>, default schema name: 'defaultSchemaName', schema names: [schemaNames]";
Assert.assertEquals(expected, config1.toString());
}
}