Skip to content

Commit 7e88463

Browse files
JaBistDuNarrischJaBistDuNarrisch
authored andcommitted
Merge branch 'get-columns-postgre' into boolean-default-values-postgre
2 parents 5d3b31d + d777beb commit 7e88463

File tree

3 files changed

+29
-6
lines changed

3 files changed

+29
-6
lines changed

src/Migrator.Tests/Providers/PostgreSQL/PostgreSQLTransformationProvider_GetColumnsDefaultValueTests.cs

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,29 @@ public void GetColumns_DefaultValues_Succeeds()
7272
Assert.That(binarycolumn1.DefaultValue, Is.EqualTo(new byte[] { 12, 32, 34 }));
7373
}
7474

75-
[TestCase()]
76-
public void GetColumns_DefaultValueBooleanValues_Succeeds(string inboundBooleanDefaultValue, bool outboundBooleanDefaultValue)
75+
// 1 will coerce to true on inserts but not for default values in Postgre SQL - same for 0 to false
76+
// so we do not test it here
77+
[TestCase("true", true)]
78+
[TestCase("TRUE", true)]
79+
[TestCase("t", true)]
80+
[TestCase("T", true)]
81+
[TestCase("yes", true)]
82+
[TestCase("YES", true)]
83+
[TestCase("y", true)]
84+
[TestCase("Y", true)]
85+
[TestCase("on", true)]
86+
[TestCase("ON", true)]
87+
[TestCase("false", false)]
88+
[TestCase("FALSE", false)]
89+
[TestCase("f", false)]
90+
[TestCase("F", false)]
91+
[TestCase("false", false)]
92+
[TestCase("FALSE", false)]
93+
[TestCase("n", false)]
94+
[TestCase("N", false)]
95+
[TestCase("off", false)]
96+
[TestCase("OFF", false)]
97+
public void GetColumns_DefaultValueBooleanValues_Succeeds(object inboundBooleanDefaultValue, bool outboundBooleanDefaultValue)
7798
{
7899
// Arrange
79100
var dateTimeDefaultValue = new DateTime(2000, 1, 2, 3, 4, 5, DateTimeKind.Utc);
@@ -83,7 +104,7 @@ public void GetColumns_DefaultValueBooleanValues_Succeeds(string inboundBooleanD
83104
const string booleanColumnName1 = "booleancolumn1";
84105

85106
Provider.AddTable(testTableName,
86-
new Column(booleanColumnName1, DbType.Boolean, true)
107+
new Column(booleanColumnName1, DbType.Boolean) { DefaultValue = inboundBooleanDefaultValue }
87108
);
88109

89110
// Act
@@ -92,6 +113,6 @@ public void GetColumns_DefaultValueBooleanValues_Succeeds(string inboundBooleanD
92113
// Assert
93114
var booleanColumn1 = columns.Single(x => x.Name == booleanColumnName1);
94115

95-
Assert.That(booleanColumn1.DefaultValue, Is.True);
116+
Assert.That(booleanColumn1.DefaultValue, Is.EqualTo(outboundBooleanDefaultValue));
96117
}
97118
}

src/Migrator/Framework/Column.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ public object DefaultValue
171171
{
172172
if (defaultValueDateTime.Kind != DateTimeKind.Utc)
173173
{
174-
throw new Exception("We only accept UTC values as default DateTime values.");
174+
throw new Exception("Only UTC values are accepted as default DateTime values.");
175175
}
176176
}
177177

src/Migrator/Providers/TransformationProvider.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1721,6 +1721,7 @@ public virtual string QuoteColumnNameIfRequired(string name)
17211721
{
17221722
return Dialect.Quote(name);
17231723
}
1724+
17241725
return name;
17251726
}
17261727

@@ -1730,6 +1731,7 @@ public virtual string QuoteTableNameIfRequired(string name)
17301731
{
17311732
return Dialect.Quote(name);
17321733
}
1734+
17331735
return name;
17341736
}
17351737

@@ -1793,7 +1795,7 @@ public virtual void AddColumnDefaultValue(string table, string column, object de
17931795
}
17941796

17951797
table = QuoteTableNameIfRequired(table);
1796-
column = this.QuoteColumnNameIfRequired(column);
1798+
column = QuoteColumnNameIfRequired(column);
17971799
var def = Dialect.Default(defaultValue);
17981800
ExecuteNonQuery(string.Format("ALTER TABLE {0} ADD DEFAULT('{1}') FOR {2}", table, def, column));
17991801
}

0 commit comments

Comments
 (0)