Skip to content

Commit c3d24ad

Browse files
JaBistDuNarrischJaBistDuNarrisch
authored andcommitted
Oracle, SQL Server, SQLite and Postgre SQL Begin Transaction moved to base class
1 parent bac2e3f commit c3d24ad

9 files changed

+81
-76
lines changed

src/Migrator.Tests/Providers/Base/TransformationProviderBase.cs

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
using System;
2-
using System.Data;
3-
using System.Linq;
42
using System.Threading;
53
using System.Threading.Tasks;
64
using DotNetProjects.Migrator.Framework;
75
using DotNetProjects.Migrator.Providers;
86
using DotNetProjects.Migrator.Providers.Impl.Oracle;
7+
using DotNetProjects.Migrator.Providers.Impl.PostgreSQL;
98
using DotNetProjects.Migrator.Providers.Impl.SQLite;
9+
using DotNetProjects.Migrator.Providers.Impl.SqlServer;
1010
using DryIoc;
1111
using Migrator.Tests.Database;
1212
using Migrator.Tests.Database.Interfaces;
@@ -24,7 +24,7 @@ public abstract class TransformationProviderBase
2424
{
2525
protected ITransformationProvider Provider;
2626

27-
protected async Task StartOracleTransactionAsync()
27+
protected async Task BeginOracleTransactionAsync()
2828
{
2929
using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10));
3030
var configReader = new ConfigurationReader();
@@ -51,6 +51,25 @@ protected async Task StartOracleTransactionAsync()
5151
Provider.BeginTransaction();
5252
}
5353

54+
protected async Task BeginPostgreSQLTransactionAsync()
55+
{
56+
var configReader = new ConfigurationReader();
57+
var connectionString = configReader.GetDatabaseConnectionConfigById(DatabaseConnectionConfigIds.PostgreSQL)
58+
?.ConnectionString;
59+
60+
if (string.IsNullOrEmpty(connectionString))
61+
{
62+
throw new IgnoreException("No Postgre ConnectionString is Set.");
63+
}
64+
65+
DbProviderFactories.RegisterFactory("Npgsql", () => Npgsql.NpgsqlFactory.Instance);
66+
67+
Provider = new PostgreSQLTransformationProvider(new PostgreSQLDialect(), connectionString, null, "default", "Npgsql");
68+
Provider.BeginTransaction();
69+
70+
await Task.CompletedTask;
71+
}
72+
5473
protected async Task BeginSQLiteTransactionAsync()
5574
{
5675
var configReader = new ConfigurationReader();
@@ -62,4 +81,30 @@ protected async Task BeginSQLiteTransactionAsync()
6281

6382
await Task.CompletedTask;
6483
}
84+
85+
protected async Task BeginSQLServerTransactionAsync()
86+
{
87+
var configReader = new ConfigurationReader();
88+
89+
var databaseConnectionConfig = configReader.GetDatabaseConnectionConfigById(DatabaseConnectionConfigIds.SQLServerId);
90+
91+
var connectionString = databaseConnectionConfig?.ConnectionString;
92+
93+
if (string.IsNullOrEmpty(connectionString))
94+
{
95+
throw new IgnoreException($"No SQL Server {nameof(DatabaseConnectionConfig.ConnectionString)} is set.");
96+
}
97+
98+
DbProviderFactories.RegisterFactory("Microsoft.Data.SqlClient", () => Microsoft.Data.SqlClient.SqlClientFactory.Instance);
99+
100+
using var container = new Container();
101+
container.RegisterDatabaseIntegrationTestService();
102+
var databaseIntegrationTestServiceFactory = container.Resolve<IDatabaseIntegrationTestServiceFactory>();
103+
var sqlServerIntegrationTestService = databaseIntegrationTestServiceFactory.Create(DatabaseProviderType.SQLServer);
104+
var databaseInfo = await sqlServerIntegrationTestService.CreateTestDatabaseAsync(databaseConnectionConfig, CancellationToken.None);
105+
106+
Provider = new SqlServerTransformationProvider(new SqlServerDialect(), databaseInfo.DatabaseConnectionConfig.ConnectionString, "dbo", "default", "Microsoft.Data.SqlClient");
107+
108+
Provider.BeginTransaction();
109+
}
65110
}

src/Migrator.Tests/Providers/OracleProvider/Base/OracleTransformationProviderTestBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class OracleTransformationProviderTestBase : TransformationProviderSimple
1919
[SetUp]
2020
public async Task SetUpAsync()
2121
{
22-
await StartOracleTransactionAsync();
22+
await BeginOracleTransactionAsync();
2323

2424
AddDefaultTable();
2525
}

src/Migrator.Tests/Providers/OracleProvider/OracleTransformationProviderGenericTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public class OracleTransformationProviderGenericTests : TransformationProviderGe
2323
[SetUp]
2424
public async Task SetUpAsync()
2525
{
26-
await StartOracleTransactionAsync();
26+
await BeginOracleTransactionAsync();
2727

2828
AddDefaultTable();
2929
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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 PostgreSQLTransformationProviderGenericTests : TransformationProviderGenericMiscConstraintBase
10+
{
11+
[SetUp]
12+
public async Task SetUpAsync()
13+
{
14+
await BeginPostgreSQLTransactionAsync();
15+
16+
AddDefaultTable();
17+
}
18+
}

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

Lines changed: 0 additions & 32 deletions
This file was deleted.

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

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using DryIoc;
88
using Migrator.Tests.Database;
99
using Migrator.Tests.Database.Interfaces;
10+
using Migrator.Tests.Providers.Generic;
1011
using Migrator.Tests.Settings;
1112
using Migrator.Tests.Settings.Config;
1213
using Migrator.Tests.Settings.Models;
@@ -16,32 +17,12 @@ namespace Migrator.Tests.Providers.SQLServer;
1617

1718
[TestFixture]
1819
[Category("SqlServer")]
19-
public class SqlServerTransformationProviderGenericTests : TransformationProviderConstraintBase
20+
public class SqlServerTransformationProviderGenericTests : TransformationProviderGenericMiscConstraintBase
2021
{
2122
[SetUp]
2223
public async Task SetUpAsync()
2324
{
24-
var configReader = new ConfigurationReader();
25-
26-
var databaseConnectionConfig = configReader.GetDatabaseConnectionConfigById(DatabaseConnectionConfigIds.SQLServerId);
27-
28-
var connectionString = databaseConnectionConfig?.ConnectionString;
29-
30-
if (string.IsNullOrEmpty(connectionString))
31-
{
32-
throw new IgnoreException($"No SQL Server {nameof(DatabaseConnectionConfig.ConnectionString)} is set.");
33-
}
34-
35-
DbProviderFactories.RegisterFactory("Microsoft.Data.SqlClient", () => Microsoft.Data.SqlClient.SqlClientFactory.Instance);
36-
37-
using var container = new Container();
38-
container.RegisterDatabaseIntegrationTestService();
39-
var databaseIntegrationTestServiceFactory = container.Resolve<IDatabaseIntegrationTestServiceFactory>();
40-
var sqlServerIntegrationTestService = databaseIntegrationTestServiceFactory.Create(DatabaseProviderType.SQLServer);
41-
var databaseInfo = await sqlServerIntegrationTestService.CreateTestDatabaseAsync(databaseConnectionConfig, CancellationToken.None);
42-
43-
Provider = new SqlServerTransformationProvider(new SqlServerDialect(), databaseInfo.DatabaseConnectionConfig.ConnectionString, "dbo", "default", "Microsoft.Data.SqlClient");
44-
Provider.BeginTransaction();
25+
dfdfg
4526

4627
AddDefaultTable();
4728
}

src/Migrator.Tests/Providers/SQLite/Base/SQLiteTransformationProviderTestBase.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System.Threading.Tasks;
12
using DotNetProjects.Migrator.Providers.Impl.SQLite;
23
using Migrator.Tests.Providers.Base;
34
using Migrator.Tests.Settings;
@@ -11,7 +12,7 @@ namespace Migrator.Tests.Providers.SQLite.Base;
1112
public abstract class SQLiteTransformationProviderTestBase : TransformationProviderSimpleBase
1213
{
1314
[SetUp]
14-
public void SetUp()
15+
public async Task SetUpAsync()
1516
{
1617
var configReader = new ConfigurationReader();
1718
var connectionString = configReader.GetDatabaseConnectionConfigById(DatabaseConnectionConfigIds.SQLiteId)
@@ -20,6 +21,6 @@ public void SetUp()
2021
Provider = new SQLiteTransformationProvider(new SQLiteDialect(), connectionString, "default", null);
2122
Provider.BeginTransaction();
2223

23-
AddDefaultTable();
24+
await Task.CompletedTask;
2425
}
2526
}

src/Migrator.Tests/Providers/SQLite/SQLiteTransformationProviderGenericTests.cs

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,17 @@
1-
using DotNetProjects.Migrator.Providers.Impl.SQLite;
2-
using Migrator.Tests.Providers.Base;
3-
using Migrator.Tests.Settings;
4-
using Migrator.Tests.Settings.Config;
1+
using System.Threading.Tasks;
2+
using Migrator.Tests.Providers.Generic;
53
using NUnit.Framework;
64

75
namespace Migrator.Tests.Providers.SQLite;
86

97
[TestFixture]
108
[Category("SQLite")]
11-
public class SQLiteTransformationProviderGenericTests : TransformationProviderBase
9+
public class SQLiteTransformationProviderGenericTests : TransformationProviderGenericMiscConstraintBase
1210
{
1311
[SetUp]
14-
public void SetUp()
12+
public async Task SetUpAsync()
1513
{
16-
var configReader = new ConfigurationReader();
17-
var connectionString = configReader.GetDatabaseConnectionConfigById(DatabaseConnectionConfigIds.SQLiteId)
18-
.ConnectionString;
19-
20-
Provider = new SQLiteTransformationProvider(new SQLiteDialect(), connectionString, "default", null);
21-
Provider.BeginTransaction();
14+
await BeginSQLiteTransactionAsync();
2215

2316
AddDefaultTable();
2417
}

src/Migrator.Tests/Providers/SQLite/SQLiteTransformationProvider_RenameColumnTests.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
1-
using System;
21
using System.Data;
32
using System.Linq;
43
using DotNetProjects.Migrator.Framework;
54
using DotNetProjects.Migrator.Providers.Impl.SQLite;
6-
using Migrator.Tests.Providers.SQLite.Base;
5+
using Migrator.Tests.Providers.Base;
76
using NUnit.Framework;
87

98
namespace Migrator.Tests.Providers.SQLite;
109

1110
[TestFixture]
1211
[Category("SQLite")]
13-
public class SQLiteTransformationProvider_RenameColumnTests : SQLiteTransformationProviderTestBase
12+
public class SQLiteTransformationProvider_RenameColumnTests : TransformationProviderBase
1413
{
1514
[Test]
1615
public void RenameColumn_HavingASingleForeignKeyPointingToTheTargetColumn_SingleColumnForeignKeyIsRemoved()

0 commit comments

Comments
 (0)