From 4e9298de244f3d8d09e331a53a086cc4835ca705 Mon Sep 17 00:00:00 2001 From: JaBistDuNarrisch Date: Mon, 20 Oct 2025 15:49:10 +0200 Subject: [PATCH] Added more tests --- .../Generic/Generic_AddPrimaryKey.cs | 24 +++++++++++ .../Generic/Generic_ChangeColumnTestsBase.cs | 26 +++++++++++ ...leTransformationProvider_AddColumnTests.cs | 43 +++++++++++++++++++ ...leTransformationProvider_AddTable_Tests.cs | 18 ++++++++ 4 files changed, 111 insertions(+) create mode 100644 src/Migrator.Tests/Providers/OracleProvider/OracleTransformationProvider_AddColumnTests.cs diff --git a/src/Migrator.Tests/Providers/Generic/Generic_AddPrimaryKey.cs b/src/Migrator.Tests/Providers/Generic/Generic_AddPrimaryKey.cs index 1d26a813..b203a11c 100644 --- a/src/Migrator.Tests/Providers/Generic/Generic_AddPrimaryKey.cs +++ b/src/Migrator.Tests/Providers/Generic/Generic_AddPrimaryKey.cs @@ -44,4 +44,28 @@ public void AddPrimaryKey_IdentityColumnWithData_Success() Assert.That(list[0].Item1, Is.EqualTo(1)); Assert.That(list[1].Item1, Is.EqualTo(2)); } + + [Test] + public void AddPrimaryKey_AddPrimaryKey_ShouldStillBeNotNull() + { + // Arrange + const string tableName = "TestTable"; + const string columnName1 = "TestColumn1"; + const string columnName2 = "TestColumn2"; + + Provider.AddTable(tableName, + new Column(columnName1, DbType.Int32, property: ColumnProperty.NotNull), + new Column(columnName2, DbType.DateTime, property: ColumnProperty.NotNull) + ); + + // Act + Provider.AddPrimaryKey(name: "MyPkName", table: tableName, columnName1); + + // Assert + var column1 = Provider.GetColumnByName(table: tableName, column: columnName1); + var column2 = Provider.GetColumnByName(table: tableName, column: columnName2); + + Assert.That(column1.ColumnProperty.HasFlag(ColumnProperty.NotNull), Is.True); + Assert.That(column2.ColumnProperty.HasFlag(ColumnProperty.NotNull), Is.True); + } } \ No newline at end of file diff --git a/src/Migrator.Tests/Providers/Generic/Generic_ChangeColumnTestsBase.cs b/src/Migrator.Tests/Providers/Generic/Generic_ChangeColumnTestsBase.cs index cc382515..6622eaf8 100644 --- a/src/Migrator.Tests/Providers/Generic/Generic_ChangeColumnTestsBase.cs +++ b/src/Migrator.Tests/Providers/Generic/Generic_ChangeColumnTestsBase.cs @@ -1,7 +1,33 @@ +using System.Data; +using DotNetProjects.Migrator.Framework; using Migrator.Tests.Providers.Base; +using NUnit.Framework; namespace Migrator.Tests.Providers.Generic; public abstract class Generic_ChangeColumnTestsBase : TransformationProviderBase { + [Test] + public void ChangeColumn_NotNullAndNullToNotNull_Success() + { + // Arrange + var tableName = "TableName"; + var column1Name = "Column1"; + var column2Name = "Column2"; + + // Act + Provider.AddTable(tableName, + new Column(column1Name, DbType.DateTime, ColumnProperty.NotNull), + new Column(column2Name, DbType.DateTime, ColumnProperty.Null) + ); + + // Assert + Provider.ChangeColumn(tableName, new Column(column1Name, DbType.DateTime2, ColumnProperty.NotNull)); + Provider.ChangeColumn(tableName, new Column(column2Name, DbType.DateTime2, ColumnProperty.NotNull)); + var column1 = Provider.GetColumnByName(tableName, column1Name); + var column2 = Provider.GetColumnByName(tableName, column2Name); + + Assert.That(column1.ColumnProperty.HasFlag(ColumnProperty.NotNull), Is.True); + Assert.That(column2.ColumnProperty.HasFlag(ColumnProperty.NotNull), Is.True); + } } \ No newline at end of file diff --git a/src/Migrator.Tests/Providers/OracleProvider/OracleTransformationProvider_AddColumnTests.cs b/src/Migrator.Tests/Providers/OracleProvider/OracleTransformationProvider_AddColumnTests.cs new file mode 100644 index 00000000..6675de98 --- /dev/null +++ b/src/Migrator.Tests/Providers/OracleProvider/OracleTransformationProvider_AddColumnTests.cs @@ -0,0 +1,43 @@ +using System.Data; +using System.Threading.Tasks; +using DotNetProjects.Migrator.Framework; +using Migrator.Tests.Providers.Base; +using NUnit.Framework; + +namespace Migrator.Tests.Providers.OracleProvider; + +[TestFixture] +[Category("Oracle")] +public class OracleTransformationProvider_AddColumn_Tests : TransformationProviderBase +{ + [SetUp] + public async Task SetUpAsync() + { + await BeginOracleTransactionAsync(); + } + + [Test] + public void AddTable_NotNull_OtherColumnStillNotNull() + { + // Arrange + var tableName = "TableName"; + var column1Name = "Column1"; + var column2Name = "Column2"; + + + Provider.AddTable(tableName, + new Column(column1Name, DbType.Int32, ColumnProperty.NotNull) + ); + + // Act + Provider.AddColumn(table: tableName, column: new Column(column2Name, DbType.DateTime, ColumnProperty.NotNull)); + + + // Assert + var column1 = Provider.GetColumnByName(tableName, column1Name); + var column2 = Provider.GetColumnByName(tableName, column2Name); + + Assert.That(column1.ColumnProperty.HasFlag(ColumnProperty.NotNull), Is.True); + Assert.That(column2.ColumnProperty.HasFlag(ColumnProperty.NotNull), Is.True); + } +} \ No newline at end of file diff --git a/src/Migrator.Tests/Providers/OracleProvider/OracleTransformationProvider_AddTable_Tests.cs b/src/Migrator.Tests/Providers/OracleProvider/OracleTransformationProvider_AddTable_Tests.cs index aa33b236..ca6414eb 100644 --- a/src/Migrator.Tests/Providers/OracleProvider/OracleTransformationProvider_AddTable_Tests.cs +++ b/src/Migrator.Tests/Providers/OracleProvider/OracleTransformationProvider_AddTable_Tests.cs @@ -27,4 +27,22 @@ public void AddTableWithCompoundPrimaryKey() Assert.That(Provider.TableExists("Test"), Is.True, "Table doesn't exist"); Assert.That(Provider.PrimaryKeyExists("Test", "PK_Test"), Is.True, "Constraint doesn't exist"); } + + [Test] + public void AddTable_NotNull_Success() + { + // Arrange + var tableName = "TableName"; + var column1Name = "Column1"; + + // Act + Provider.AddTable(tableName, + new Column(column1Name, DbType.Int32, ColumnProperty.NotNull) + ); + + // Assert + var column1 = Provider.GetColumnByName(tableName, column1Name); + + Assert.That(column1.ColumnProperty.HasFlag(ColumnProperty.NotNull), Is.True); + } } \ No newline at end of file