diff --git a/pom.xml b/pom.xml index f0d4232d..73a24696 100644 --- a/pom.xml +++ b/pom.xml @@ -2,6 +2,12 @@ 4.0.0 + + org.liquibase + liquibase-parent-pom + 0.4.5 + + org.liquibase.ext liquibase-databricks 1.4.0-SNAPSHOT @@ -57,74 +63,50 @@ true src/main/java src/test/groovy - - 2.4.21 - 1.3-groovy-2.4 - + 1.0.10 + 5.11.0 + 1.11.0 target - org.liquibase - liquibase-core - ${liquibase.version} - - - junit - junit - test - 4.13.2 - - - org.liquibase - liquibase-test-harness - 1.0.9 - test + com.databricks + databricks-jdbc + 2.6.40 - org.skyscreamer - jsonassert - 1.5.3 - test + org.projectlombok + lombok + 1.18.34 + provided - com.databricks - databricks-jdbc - 2.6.40 - test + org.junit.jupiter + junit-jupiter-api + ${junit.version} + compile - - org.codehaus.groovy - groovy-all - ${groovy.version} - test - pom - - - org.codehaus.groovy - groovy-testng - - + org.junit.platform + junit-platform-suite + ${junit-platform.version} - org.spockframework - spock-core - ${dependency.spock.version} + org.junit.platform + junit-platform-launcher + ${junit-platform.version} test - com.databricks - databricks-jdbc - 2.6.40 - compile + org.junit.vintage + junit-vintage-engine + ${junit.version} - org.projectlombok - lombok - 1.18.34 - provided + org.junit.jupiter + junit-jupiter-engine + ${junit.version} @@ -153,15 +135,6 @@ - - maven-surefire-plugin - 3.4.0 - - true - plain - - - org.codehaus.mojo build-helper-maven-plugin @@ -193,35 +166,6 @@ - - org.apache.maven.plugins - maven-source-plugin - 3.3.1 - - - attach-sources - package - - jar - - - - - - - org.codehaus.gmavenplus - gmavenplus-plugin - 3.0.2 - - - - compile - compileTests - - - - - org.jacoco jacoco-maven-plugin diff --git a/src/main/java/liquibase/ext/databricks/datatype/ArrayStringDataTypeDatabricks.java b/src/main/java/liquibase/ext/databricks/datatype/ArrayStringDataTypeDatabricks.java index 44db13bb..1c6bed47 100644 --- a/src/main/java/liquibase/ext/databricks/datatype/ArrayStringDataTypeDatabricks.java +++ b/src/main/java/liquibase/ext/databricks/datatype/ArrayStringDataTypeDatabricks.java @@ -14,7 +14,7 @@ public class ArrayStringDataTypeDatabricks extends LiquibaseDataType { @Override public DatabaseDataType toDatabaseDataType(Database database) { if (database instanceof DatabricksDatabase) { - return new DatabaseDataType("ARARY"); + return new DatabaseDataType("ARRAY"); } return super.toDatabaseDataType(database); } diff --git a/src/test/java/liquibase/ext/databricks/change/addLookupTable/AddLookupTableChangeDatabricksTest.java b/src/test/java/liquibase/ext/databricks/change/addLookupTable/AddLookupTableChangeDatabricksTest.java new file mode 100644 index 00000000..edef1798 --- /dev/null +++ b/src/test/java/liquibase/ext/databricks/change/addLookupTable/AddLookupTableChangeDatabricksTest.java @@ -0,0 +1,68 @@ +package liquibase.ext.databricks.change.addLookupTable; + +import liquibase.ext.databricks.database.DatabricksDatabase; +import liquibase.statement.SqlStatement; +import liquibase.statement.core.AddForeignKeyConstraintStatement; +import liquibase.statement.core.AddPrimaryKeyStatement; +import liquibase.statement.core.RawParameterizedSqlStatement; +import liquibase.statement.core.SetNullableStatement; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; + +class AddLookupTableChangeDatabricksTest { + + private DatabricksDatabase database; + + @BeforeEach + public void setUp() { + database = new DatabricksDatabase(); + } + + @Test + void getConstraintName() { + AddLookupTableChangeDatabricks change = new AddLookupTableChangeDatabricks(); + change.setConstraintName("testConstraint"); + + assertEquals("testConstraint", change.getFinalConstraintName()); + + } + + @Test + void getConstraintNameGenerated() { + AddLookupTableChangeDatabricks changeNoName = new AddLookupTableChangeDatabricks(); + changeNoName.setExistingTableName("existingTable"); + changeNoName.setNewTableName("newTable"); + + assertEquals("fk_existingtable_newtable", changeNoName.getFinalConstraintName()); + + } + + @Test + void supports() { + AddLookupTableChangeDatabricks change = new AddLookupTableChangeDatabricks(); + assertTrue(change.supports(database)); + } + + @Test + void generateStatements() { + AddLookupTableChangeDatabricks change = new AddLookupTableChangeDatabricks(); + change.setExistingTableName("oldTable"); + change.setExistingColumnName("oldColumn"); + change.setNewTableName("newTable"); + change.setNewColumnName("newColumn"); + change.setNewColumnDataType("string"); + + SqlStatement[] sqlStatements = change.generateStatements(database); + assertEquals(4, sqlStatements.length); + assertInstanceOf(RawParameterizedSqlStatement.class, sqlStatements[0]); + assertEquals("CREATE TABLE newTable USING delta TBLPROPERTIES('delta.feature.allowColumnDefaults' = 'supported', 'delta.columnMapping.mode' = 'name')" + + " AS SELECT DISTINCT oldColumn AS newColumn FROM oldTable WHERE oldColumn IS NOT NULL", + ((RawParameterizedSqlStatement) sqlStatements[0]).getSql() ); + assertInstanceOf(SetNullableStatement.class, sqlStatements[1]); + assertInstanceOf(AddPrimaryKeyStatement.class, sqlStatements[2]); + assertInstanceOf(AddForeignKeyConstraintStatement.class, sqlStatements[3]); + } +} \ No newline at end of file