From 3a8f32b173753f91504220ebc9808802ada52534 Mon Sep 17 00:00:00 2001 From: Michael Benz Date: Wed, 19 Apr 2017 18:16:51 +0200 Subject: [PATCH] adding dbmigration ddlgeneration test for Ebean @DbArray extension. --- .../ddlgeneration/BaseDdlHandlerTest.java | 25 +++++++++++++++++++ .../dbmigration/ddlgeneration/Helper.java | 4 +++ .../resources/container/test-alter-table.xml | 4 +++ 3 files changed, 33 insertions(+) diff --git a/src/test/java/io/ebean/dbmigration/ddlgeneration/BaseDdlHandlerTest.java b/src/test/java/io/ebean/dbmigration/ddlgeneration/BaseDdlHandlerTest.java index 0e5fe1ca8d..4294de3e95 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.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 @@ private DdlHandler h2Handler() { 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 void addColumn_nullable_noConstraint() throws Exception { 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 9918bce8e3..32584093ad 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 static AddColumn getAlterTableAddColumn() { 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 de71943e6c..b833e08304 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