Skip to content

Commit b5ee749

Browse files
committed
More tests switched to containers
1 parent b199f34 commit b5ee749

File tree

8 files changed

+31
-60
lines changed

8 files changed

+31
-60
lines changed

tests/Thinktecture.EntityFrameworkCore.SqlServer.Tests/DeleteTestData.cs

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

tests/Thinktecture.EntityFrameworkCore.SqlServer.Tests/EntityFrameworkCore/TempTables/SqlServerTempTableCreatorTests/CreateTempTableAsync.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,15 @@ namespace Thinktecture.EntityFrameworkCore.TempTables.SqlServerTempTableCreatorT
1212
public class CreateTempTableAsync : IntegrationTestsBase
1313
{
1414
private readonly SqlServerTempTableCreationOptions _optionsWithNonUniqueName;
15+
private readonly string _connectionString;
1516

1617
private SqlServerTempTableCreator? _sut;
1718
private SqlServerTempTableCreator SUT => _sut ??= (SqlServerTempTableCreator)ActDbContext.GetService<ITempTableCreator>();
1819

1920
public CreateTempTableAsync(ITestOutputHelper testOutputHelper, SqlServerContainerFixture sqlServerContainerFixture)
2021
: base(testOutputHelper, sqlServerContainerFixture)
2122
{
23+
_connectionString = sqlServerContainerFixture.ConnectionString;
2224
_optionsWithNonUniqueName = new SqlServerTempTableCreationOptions { TableNameProvider = DefaultTempTableNameProvider.Instance, PrimaryKeyCreation = IPrimaryKeyPropertiesProvider.None };
2325
}
2426

@@ -689,9 +691,9 @@ public async Task Should_honor_collation()
689691
ValidateColumn(columns[2], nameof(TestEntityWithCollation.ColumnWithoutCollation), "nvarchar", false, collation: databaseCollation);
690692
}
691693

692-
private static DbConnection CreateConnection()
694+
private DbConnection CreateConnection()
693695
{
694-
return new SqlConnection(TestContext.Instance.ConnectionString);
696+
return new SqlConnection(_connectionString);
695697
}
696698

697699
private DbContextOptions<TestDbContext> CreateOptions(DbConnection connection)

tests/Thinktecture.EntityFrameworkCore.SqlServer.Tests/Extensions/SqlServerOperationBuilderExtensionsTests/ExistTestBase.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@
55
namespace Thinktecture.Extensions.SqlServerOperationBuilderExtensionsTests;
66

77
[Collection("SqlServerTests")]
8-
public class ExistTestBase
8+
public abstract class ExistTestBase
99
{
1010
protected MigrationExtensionsTestDbContext Context { get; }
1111
protected DelegatingMigration Migration { get; }
1212
protected Action ExecuteMigration { get; }
1313

14-
protected ExistTestBase(ITestOutputHelper testOutputHelper)
14+
protected ExistTestBase(ITestOutputHelper testOutputHelper, SqlServerContainerFixture sqlServerContainerFixture)
1515
{
1616
var loggerFactory = TestContext.Instance.GetLoggerFactory(testOutputHelper);
1717
var options = new DbContextOptionsBuilder<MigrationExtensionsTestDbContext>()
18-
.UseSqlServer(TestContext.Instance.ConnectionString,
18+
.UseSqlServer(sqlServerContainerFixture.ConnectionString,
1919
sqlServerBuilder => sqlServerBuilder.UseThinktectureSqlServerMigrationsSqlGenerator())
2020
.UseLoggerFactory(loggerFactory)
2121
.EnableDetailedErrors()

tests/Thinktecture.EntityFrameworkCore.SqlServer.Tests/Extensions/SqlServerOperationBuilderExtensionsTests/IfExists.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ namespace Thinktecture.Extensions.SqlServerOperationBuilderExtensionsTests;
44

55
public class IfExists : ExistTestBase
66
{
7-
public IfExists(ITestOutputHelper testOutputHelper)
8-
: base(testOutputHelper)
7+
public IfExists(ITestOutputHelper testOutputHelper, SqlServerContainerFixture sqlServerContainerFixture)
8+
: base(testOutputHelper, sqlServerContainerFixture)
99
{
1010
}
1111

tests/Thinktecture.EntityFrameworkCore.SqlServer.Tests/Extensions/SqlServerOperationBuilderExtensionsTests/IfNotExists.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ namespace Thinktecture.Extensions.SqlServerOperationBuilderExtensionsTests;
44

55
public class IfNotExists : ExistTestBase
66
{
7-
public IfNotExists(ITestOutputHelper testOutputHelper)
8-
: base(testOutputHelper)
7+
public IfNotExists(ITestOutputHelper testOutputHelper, SqlServerContainerFixture sqlServerContainerFixture)
8+
: base(testOutputHelper, sqlServerContainerFixture)
99
{
1010
}
1111

tests/Thinktecture.EntityFrameworkCore.SqlServer.Tests/IntegrationTestsBase.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
using System.Text.Json;
22
using Microsoft.EntityFrameworkCore.Diagnostics;
3+
using Microsoft.EntityFrameworkCore.Metadata;
34
using Microsoft.Extensions.Logging;
45
using Thinktecture.EntityFrameworkCore.Infrastructure;
6+
using Thinktecture.EntityFrameworkCore.Parameters;
57
using Thinktecture.EntityFrameworkCore.Query;
8+
using Thinktecture.EntityFrameworkCore.TempTables;
69
using Thinktecture.EntityFrameworkCore.Testing;
710
using Thinktecture.Json;
811
using Thinktecture.TestDatabaseContext;
@@ -22,10 +25,22 @@ public class IntegrationTestsBase : SqlServerDbContextIntegrationTests<TestDbCon
2225
protected Mock<ITenantDatabaseProvider> TenantDatabaseProviderMock { get; }
2326

2427
protected IntegrationTestsBase(ITestOutputHelper testOutputHelper, SqlServerContainerFixture sqlServerContainerFixture)
25-
: this(sqlServerContainerFixture.ConnectionString, testOutputHelper, new DeleteTestData())
28+
: this(sqlServerContainerFixture.ConnectionString, testOutputHelper, ITestIsolationOptions.DeleteData(NonExistingTableFilter))
2629
{
2730
}
2831

32+
private static bool NonExistingTableFilter(IEntityType entityType)
33+
{
34+
return entityType.ClrType != typeof(TestEntityWithCollation)
35+
&& entityType.ClrType != typeof(CustomTempTable)
36+
&& entityType.ClrType != typeof(OwnedEntity)
37+
&& entityType.ClrType != typeof(OwnedEntity_Owns_Inline)
38+
&& entityType.ClrType != typeof(OwnedEntity_Owns_SeparateOne)
39+
&& entityType.ClrType != typeof(OwnedEntity_Owns_SeparateMany)
40+
&& entityType.ClrType != typeof(MyParameter)
41+
&& entityType.ClrType != typeof(TestTemporalTableEntity);
42+
}
43+
2944
protected IntegrationTestsBase(string connectionString, ITestOutputHelper testOutputHelper, ITestIsolationOptions isolationOptions)
3045
: base(connectionString, isolationOptions, testOutputHelper)
3146
{

tests/Thinktecture.EntityFrameworkCore.SqlServer.Tests/SqlServerContainerFixture.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@ public SqlServerContainerFixture()
1818

1919
private static MsSqlTestcontainer BuildContainer()
2020
{
21+
// https: //github.com/testcontainers/testcontainers-dotnet/issues/750#issuecomment-1412257694
22+
#pragma warning disable 618
2123
return new TestcontainersBuilder<MsSqlTestcontainer>()
24+
#pragma warning restore 618
2225
.WithDatabase(new MsSqlTestcontainerConfiguration("mcr.microsoft.com/mssql/server:2022-latest")
2326
{
2427
Password = $"P@sswo0d01_{Guid.NewGuid()}"

tests/Thinktecture.EntityFrameworkCore.SqlServer.Tests/Thinktecture.EntityFrameworkCore.SqlServer.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.3" PrivateAssets="all" />
99
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="7.0.0" />
1010
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="7.0.0" />
11-
<PackageReference Include="Testcontainers" Version="2.3.0" />
11+
<PackageReference Include="Testcontainers" Version="2.4.0" />
1212
</ItemGroup>
1313

1414
<ItemGroup>

0 commit comments

Comments
 (0)