package liquibase.database.core; import liquibase.database.AbstractDatabaseTest; import liquibase.database.Database; import org.junit.Assert; import static org.junit.Assert.*; import org.junit.Test; /** * Tests for {@link PostgresDatabase} */ public class PostgresDatabaseTest extends AbstractDatabaseTest { public PostgresDatabaseTest() throws Exception { super(new PostgresDatabase()); } @Override protected String getProductNameString() { return "PostgreSQL"; } @Override @Test public void supportsInitiallyDeferrableColumns() { assertTrue(getDatabase().supportsInitiallyDeferrableColumns()); } @Override @Test public void getCurrentDateTimeFunction() { Assert.assertEquals("NOW()", getDatabase().getCurrentDateTimeFunction()); } @Test public void testDropDatabaseObjects() throws Exception { ; //TODO: test has troubles, fix later } @Test public void testCheckDatabaseChangeLogTable() throws Exception { ; //TODO: test has troubles, fix later } public void testGetDefaultDriver() { Database database = new PostgresDatabase(); assertEquals("org.postgresql.Driver", database.getDefaultDriver("jdbc:postgresql://localhost/liquibase")); assertNull(database.getDefaultDriver("jdbc:db2://localhost;databaseName=liquibase")); } @Override @Test public void escapeTableName_noSchema() { Database database = getDatabase(); assertEquals("\"tableName\"", database.escapeTableName(null, "tableName")); } @Test public void escapeTableName_reservedWord() { Database database = getDatabase(); assertEquals("\"user\"", database.escapeTableName(null, "user")); } @Override @Test public void escapeTableName_withSchema() { Database database = getDatabase(); assertEquals("\"schemaName\".\"tableName\"", database.escapeTableName("schemaName", "tableName")); } }