diff --git a/src/test/java/io/ebean/dbmigration/ddlgeneration/BaseDdlHandlerTest.java b/src/test/java/io/ebean/dbmigration/ddlgeneration/BaseDdlHandlerTest.java
index 0e5fe1ca8..4294de3e9 100644
--- a/src/test/java/io/ebean/dbmigration/ddlgeneration/BaseDdlHandlerTest.java
+++ b/src/test/java/io/ebean/dbmigration/ddlgeneration/BaseDdlHandlerTest.java
@@ -5,6 +5,7 @@ import io.ebean.Ebean;
import io.ebean.config.ServerConfig;
import io.ebean.config.dbplatform.h2.H2Platform;
import io.ebean.config.dbplatform.postgres.PostgresPlatform;
+import io.ebean.config.dbplatform.sqlserver.SqlServerPlatform;
import io.ebean.dbmigration.migration.ChangeSet;
import io.ebean.dbmigration.model.CurrentModel;
import io.ebeaninternal.api.SpiEbeanServer;
@@ -25,6 +26,10 @@ public class BaseDdlHandlerTest extends BaseTestCase {
private DdlHandler postgresHandler() {
return new PostgresPlatform().createDdlHandler(serverConfig);
}
+
+ private DdlHandler sqlserverHandler() {
+ return new SqlServerPlatform().createDdlHandler(serverConfig);
+ }
@Test
public void addColumn_nullable_noConstraint() throws Exception {
@@ -36,7 +41,27 @@ public class BaseDdlHandlerTest extends BaseTestCase {
assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column added_to_foo varchar(20);\n\n");
}
+
+ /**
+ * Test the functionality of the Ebean {@literal @}DbArray extension during DDL generation.
+ */
+ @Test
+ public void addColumn_dbarray() throws Exception {
+ DdlWrite write = new DdlWrite();
+
+ DdlHandler postgresHandler = postgresHandler();
+ postgresHandler.generate(write, Helper.getAlterTableAddDbArrayColumn());
+
+ assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_added_to_foo varchar[];\n\n");
+
+ write = new DdlWrite();
+
+ DdlHandler sqlserverHandler = sqlserverHandler();
+ sqlserverHandler.generate(write, Helper.getAlterTableAddDbArrayColumn());
+ //MS SqlServer does not support @DbArray like PostgreSQL and should just use JSON in a VARCHAR type.
+ assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add dbarray_added_to_foo varchar;\n\n");
+ }
@Test
public void addColumn_withForeignKey() throws Exception {
diff --git a/src/test/java/io/ebean/dbmigration/ddlgeneration/Helper.java b/src/test/java/io/ebean/dbmigration/ddlgeneration/Helper.java
index 9918bce8e..32584093a 100644
--- a/src/test/java/io/ebean/dbmigration/ddlgeneration/Helper.java
+++ b/src/test/java/io/ebean/dbmigration/ddlgeneration/Helper.java
@@ -55,6 +55,10 @@ public class Helper {
return (AddColumn) alterTableChangeSetChildren.get(0);
}
+ public static AddColumn getAlterTableAddDbArrayColumn() {
+ return (AddColumn) alterTableChangeSetChildren.get(1);
+ }
+
public static DropColumn getDropColumn() {
return (DropColumn) changeSetChildren.get(2);
}
diff --git a/src/test/resources/container/test-alter-table.xml b/src/test/resources/container/test-alter-table.xml
index de71943e6..b833e0830 100644
--- a/src/test/resources/container/test-alter-table.xml
+++ b/src/test/resources/container/test-alter-table.xml
@@ -8,6 +8,10 @@
+
+
+
+
\ No newline at end of file