Skip to content

Commit 2b11fde

Browse files
JaBistDuNarrischJaBistDuNarrisch
authored andcommitted
Added test for default value (not reset on ChangeColumn)
1 parent 4e9298d commit 2b11fde

File tree

2 files changed

+41
-1
lines changed

2 files changed

+41
-1
lines changed

src/Migrator.Tests/Providers/Generic/Generic_ChangeColumnTestsBase.cs

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1+
using System;
2+
using System.Collections.Generic;
13
using System.Data;
4+
using System.Linq;
25
using DotNetProjects.Migrator.Framework;
36
using Migrator.Tests.Providers.Base;
47
using NUnit.Framework;
@@ -30,4 +33,41 @@ public void ChangeColumn_NotNullAndNullToNotNull_Success()
3033
Assert.That(column1.ColumnProperty.HasFlag(ColumnProperty.NotNull), Is.True);
3134
Assert.That(column2.ColumnProperty.HasFlag(ColumnProperty.NotNull), Is.True);
3235
}
36+
37+
[Test, Ignore("Not yet implemented. See issue https://github.com/dotnetprojects/Migrator.NET/issues/139")]
38+
public void ChangeColumn_RemoveDefaultValue_Success()
39+
{
40+
// Arrange
41+
var tableName = "TableName";
42+
var column1Name = "Column1";
43+
var column2Name = "Column2";
44+
45+
var testTime = new DateTime(2025, 5, 5, 5, 5, 5, DateTimeKind.Utc);
46+
47+
Provider.AddTable(tableName,
48+
new Column(name: column1Name, type: DbType.Int32, property: ColumnProperty.NotNull),
49+
new Column(name: column2Name, type: DbType.DateTime2, property: ColumnProperty.Null, defaultValue: testTime)
50+
);
51+
52+
// Act
53+
Provider.Insert(table: tableName, [column1Name], [1]);
54+
Provider.ChangeColumn(table: tableName, column: new Column(name: column2Name, type: DbType.DateTime2, property: ColumnProperty.Null));
55+
56+
// Assert
57+
Provider.Insert(table: tableName, [column1Name], [2]);
58+
59+
using var cmd = Provider.CreateCommand();
60+
using var reader = Provider.Select(cmd: cmd, table: tableName, columns: [column1Name, column2Name]);
61+
62+
List<(int, DateTime)> records = [];
63+
64+
while (reader.Read())
65+
{
66+
records.Add((reader.GetInt32(0), reader.GetDateTime(1)));
67+
}
68+
69+
Assert.That(records.Count, Is.EqualTo(2));
70+
Assert.That(records.Single(x => x.Item1 == 1).Item2, Is.EqualTo(testTime));
71+
Assert.That(records.Single(x => x.Item1 == 2).Item2, Is.Null);
72+
}
3373
}

src/Migrator.Tests/Providers/SQLServer/SQLServerTransformationProvider_ChangeColumnTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace Migrator.Tests.Providers.SQLServer;
88

99
[TestFixture]
1010
[Category("SqlServer")]
11-
public class SQLServerTransformationProvider_ChangeColumnTests : Generic_AddIndexTestsBase
11+
public class SQLServerTransformationProvider_ChangeColumnTests : Generic_ChangeColumnTestsBase
1212
{
1313
[SetUp]
1414
public async Task SetUpAsync()

0 commit comments

Comments
 (0)