package liquibase.database.core; import liquibase.database.AbstractDatabaseTest; import liquibase.database.Database; import liquibase.exception.DatabaseException; import org.junit.Assert; import static org.junit.Assert.*; import org.junit.Test; /** * Tests for {@link MSSQLDatabase} */ public class MSSQLDatabaseTest extends AbstractDatabaseTest { public MSSQLDatabaseTest() throws Exception { super(new MSSQLDatabase()); } @Override protected String getProductNameString() { return "Microsoft SQL Server"; } @Override @Test public void supportsInitiallyDeferrableColumns() { assertFalse(getDatabase().supportsInitiallyDeferrableColumns()); } @Override @Test public void getCurrentDateTimeFunction() { Assert.assertEquals("GETDATE()", getDatabase().getCurrentDateTimeFunction()); } @Test public void getDefaultDriver() { Database database = new MSSQLDatabase(); assertEquals("com.microsoft.sqlserver.jdbc.SQLServerDriver", database.getDefaultDriver("jdbc:sqlserver://localhost;databaseName=liquibase")); assertNull(database.getDefaultDriver("jdbc:oracle:thin://localhost;databaseName=liquibase")); } @Override @Test public void escapeTableName_noSchema() { Database database = new MSSQLDatabase(); assertEquals("[dbo].[tableName]", database.escapeTableName(null, "tableName")); } @Override @Test public void escapeTableName_withSchema() { Database database = new MSSQLDatabase(); assertEquals("[schemaName].[tableName]", database.escapeTableName("schemaName", "tableName")); } @Test public void changeDefaultSchema() throws DatabaseException { Database database = new MSSQLDatabase(); assertEquals("dbo", database.getDefaultSchemaName()); database.setDefaultSchemaName("myschema"); assertEquals("myschema", database.getDefaultSchemaName()); } }