diff --git a/sonar-db/src/main/java/org/sonar/db/version/IntegerColumnDef.java b/sonar-db/src/main/java/org/sonar/db/version/IntegerColumnDef.java index 5b2098572fe8..962da29a2fd6 100644 --- a/sonar-db/src/main/java/org/sonar/db/version/IntegerColumnDef.java +++ b/sonar-db/src/main/java/org/sonar/db/version/IntegerColumnDef.java @@ -20,6 +20,7 @@ package org.sonar.db.version; import javax.annotation.CheckForNull; +import javax.annotation.Nullable; import org.sonar.db.dialect.Dialect; import org.sonar.db.dialect.H2; import org.sonar.db.dialect.MsSql; @@ -32,7 +33,7 @@ public class IntegerColumnDef extends AbstractColumnDef { private IntegerColumnDef(Builder builder) { - super(builder.columnName, builder.isNullable, null); + super(builder.columnName, builder.isNullable, builder.defaultValue); } public static Builder newIntegerColumnDefBuilder() { @@ -57,8 +58,9 @@ public String generateSqlType(Dialect dialect) { public static class Builder { @CheckForNull private String columnName; - private boolean isNullable = true; + @CheckForNull + private Integer defaultValue = null; public Builder setColumnName(String columnName) { this.columnName = validateColumnName(columnName); @@ -70,6 +72,11 @@ public Builder setIsNullable(boolean isNullable) { return this; } + public Builder setDefaultValue(@Nullable Integer i) { + this.defaultValue = i; + return this; + } + public IntegerColumnDef build() { validateColumnName(columnName); return new IntegerColumnDef(this); diff --git a/sonar-db/src/test/java/org/sonar/db/version/IntegerColumnDefTest.java b/sonar-db/src/test/java/org/sonar/db/version/IntegerColumnDefTest.java index d36bb8c8b135..8679ff248434 100644 --- a/sonar-db/src/test/java/org/sonar/db/version/IntegerColumnDefTest.java +++ b/sonar-db/src/test/java/org/sonar/db/version/IntegerColumnDefTest.java @@ -76,7 +76,12 @@ public void builder_setColumnName_sets_name_field_of_IntegerColumnDef() { } @Test - public void getDefaultValue_always_returns_null() { + public void builder_setDefaultValue_sets_default_value_field_of_IntegerColumnDef() { + assertThat(newIntegerColumnDefBuilder().setColumnName("a").setDefaultValue(42).build().getDefaultValue()).isEqualTo(42); + } + + @Test + public void default_value_is_null_by_default() { assertThat(newIntegerColumnDefBuilder().setColumnName("a").build().getDefaultValue()).isNull(); }