Skip to content

Commit

Permalink
adding dbmigration ddlgeneration test for Ebean @DBArray extension.
Browse files Browse the repository at this point in the history
  • Loading branch information
focbenz committed Apr 20, 2017
1 parent 485e62b commit 3a8f32b
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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 {
Expand All @@ -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 {
Expand Down
4 changes: 4 additions & 0 deletions src/test/java/io/ebean/dbmigration/ddlgeneration/Helper.java
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
4 changes: 4 additions & 0 deletions src/test/resources/container/test-alter-table.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@
<column name="some_id" type="integer" references="bar.id" foreignKeyName="fk_foo_some_id" foreignKeyIndex="idx_foo_some_id"/>
</addColumn>

<addColumn tableName="foo">
<column name="dbarray_added_to_foo" type="varchar[]"/>
</addColumn>

</changeSet>

</migration>

0 comments on commit 3a8f32b

Please sign in to comment.