Skip to content

Commit 73c5c6a

Browse files
Merge pull request #128 from dotnetprojects/date-time-tests
Date time tests
2 parents 6709f7f + 2973cf1 commit 73c5c6a

7 files changed

+329
-212
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
using Migrator.Tests.Providers.Base;
2+
3+
namespace Migrator.Tests.Providers.Generic;
4+
5+
public abstract class Generic_ChangeColumnTestsBase : TransformationProviderBase
6+
{
7+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using System.Threading.Tasks;
2+
using Migrator.Tests.Providers.Generic;
3+
using NUnit.Framework;
4+
5+
namespace Migrator.Tests.Providers.OracleProvider;
6+
7+
[TestFixture]
8+
[Category("Oracle")]
9+
public class OracleTransformationProvider_ChangeColumn_Tests : Generic_ChangeColumnTestsBase
10+
{
11+
[SetUp]
12+
public async Task SetUpAsync()
13+
{
14+
await BeginOracleTransactionAsync();
15+
}
16+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using System.Threading.Tasks;
2+
using Migrator.Tests.Providers.Generic;
3+
using NUnit.Framework;
4+
5+
namespace Migrator.Tests.Providers.PostgreSQL;
6+
7+
[TestFixture]
8+
[Category("Postgre")]
9+
public class PostgreSQLTransformationProvider_ChangeColumnTests : Generic_ChangeColumnTestsBase
10+
{
11+
[SetUp]
12+
public async Task SetUpAsync()
13+
{
14+
await BeginPostgreSQLTransactionAsync();
15+
}
16+
}
Lines changed: 56 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,56 @@
1-
using System.Data;
2-
using System.Threading.Tasks;
3-
using DotNetProjects.Migrator.Framework;
4-
using Migrator.Tests.Providers.Base;
5-
using NUnit.Framework;
6-
7-
namespace Migrator.Tests.Providers.SQLServer;
8-
9-
[TestFixture]
10-
[Category("SqlServer")]
11-
public class SQLServerTransformationProvider_AddTableTests : TransformationProviderBase
12-
{
13-
[SetUp]
14-
public async Task SetUpAsync()
15-
{
16-
await BeginSQLServerTransactionAsync();
17-
}
18-
19-
[Test]
20-
public void AddTableWithCompoundPrimaryKey()
21-
{
22-
Provider.AddTable("Test",
23-
new Column("PersonId", DbType.Int32, ColumnProperty.PrimaryKey),
24-
new Column("AddressId", DbType.Int32, ColumnProperty.PrimaryKey)
25-
);
26-
27-
Assert.That(Provider.TableExists("Test"), Is.True, "Table doesn't exist");
28-
Assert.That(Provider.PrimaryKeyExists("Test", "PK_Test"), Is.True, "Constraint doesn't exist");
29-
}
30-
}
1+
using System.ComponentModel.DataAnnotations;
2+
using System.Data;
3+
using System.Threading.Tasks;
4+
using DotNetProjects.Migrator.Framework;
5+
using Migrator.Tests.Providers.Base;
6+
using NUnit.Framework;
7+
using Org.BouncyCastle.Security;
8+
9+
namespace Migrator.Tests.Providers.SQLServer;
10+
11+
[TestFixture]
12+
[Category("SqlServer")]
13+
public class SQLServerTransformationProvider_AddTableTests : TransformationProviderBase
14+
{
15+
[SetUp]
16+
public async Task SetUpAsync()
17+
{
18+
await BeginSQLServerTransactionAsync();
19+
}
20+
21+
[Test]
22+
public void AddTableWithCompoundPrimaryKey()
23+
{
24+
Provider.AddTable("Test",
25+
new Column("PersonId", DbType.Int32, ColumnProperty.PrimaryKey),
26+
new Column("AddressId", DbType.Int32, ColumnProperty.PrimaryKey)
27+
);
28+
29+
Assert.That(Provider.TableExists("Test"), Is.True, "Table doesn't exist");
30+
Assert.That(Provider.PrimaryKeyExists("Test", "PK_Test"), Is.True, "Constraint doesn't exist");
31+
}
32+
33+
[Test]
34+
public void AddTableDateTime()
35+
{
36+
var tableName = "Table1";
37+
var columnName = "Column1";
38+
39+
Provider.AddTable(tableName, new Column(columnName, DbType.DateTime, ColumnProperty.NotNull));
40+
var column = Provider.GetColumnByName(tableName, columnName);
41+
42+
Assert.That(column.Type, Is.EqualTo(DbType.DateTime));
43+
}
44+
45+
[Test]
46+
public void AddTableDateTime2()
47+
{
48+
var tableName = "Table1";
49+
var columnName = "Column1";
50+
51+
Provider.AddTable(tableName, new Column(columnName, DbType.DateTime2, ColumnProperty.NotNull));
52+
var column = Provider.GetColumnByName(tableName, columnName);
53+
54+
Assert.That(column.Type, Is.EqualTo(DbType.DateTime2));
55+
}
56+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
2+
using System;
3+
using System.Collections.Generic;
4+
using System.Data;
5+
using System.Globalization;
6+
using System.Linq;
7+
using System.Threading.Tasks;
8+
using DotNetProjects.Migrator.Framework;
9+
using DotNetProjects.Migrator.Providers.Models.Indexes;
10+
using DotNetProjects.Migrator.Providers.Models.Indexes.Enums;
11+
using Migrator.Tests.Providers.Generic;
12+
using NUnit.Framework;
13+
using Index = DotNetProjects.Migrator.Framework.Index;
14+
15+
namespace Migrator.Tests.Providers.SQLServer;
16+
17+
[TestFixture]
18+
[Category("SqlServer")]
19+
public class SQLServerTransformationProvider_ChangeColumnTests : Generic_AddIndexTestsBase
20+
{
21+
[SetUp]
22+
public async Task SetUpAsync()
23+
{
24+
await BeginSQLServerTransactionAsync();
25+
}
26+
27+
[Test]
28+
public void ChangeColumn_DateTimeToDateTime2_Success()
29+
{
30+
// Arrange
31+
const string tableName = "TestTable";
32+
const string columnName = "TestColumn";
33+
34+
Provider.AddTable(tableName, new Column(columnName, DbType.DateTime, ColumnProperty.NotNull));
35+
var columnBefore = Provider.GetColumnByName(tableName, columnName);
36+
37+
// Act
38+
Provider.ChangeColumn(tableName, new Column(columnName, DbType.DateTime2, ColumnProperty.NotNull));
39+
40+
// Assert
41+
var columnAfter = Provider.GetColumnByName(tableName, columnName);
42+
43+
Assert.That(columnBefore.Type == DbType.DateTime);
44+
Assert.That(columnAfter.Type == DbType.DateTime2);
45+
}
46+
}

0 commit comments

Comments
 (0)