Skip to content

Commit

Permalink
Merge pull request #92 from jbogard/testcontainers
Browse files Browse the repository at this point in the history
Switching to testcontainers
  • Loading branch information
jbogard committed May 29, 2024
2 parents 256e808 + b34c2db commit ae3720d
Show file tree
Hide file tree
Showing 13 changed files with 220 additions and 149 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
- master
jobs:
build:
runs-on: windows-latest
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
- '*.*.*'
jobs:
build:
runs-on: windows-latest
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
Expand Down
22 changes: 14 additions & 8 deletions src/BulkWriter.Tests/AsyncEnumerableDataReaderTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@

namespace BulkWriter.Tests
{
[Collection(nameof(DbContainerFixture))]
public class AsyncEnumerableDataReaderTests : IAsyncLifetime
{
private readonly string _connectionString = TestHelpers.ConnectionString;
private readonly string _connectionString;

private readonly string _tableName = nameof(MyTestClass);
private readonly string _customOrderTableName = nameof(MyCustomOrderTestClass);
Expand All @@ -22,17 +23,22 @@ public class AsyncEnumerableDataReaderTests : IAsyncLifetime
private readonly IAsyncEnumerable<MyCustomOrderTestClass> _customOrderEnumerable;
private readonly AsyncEnumerableDataReader<MyCustomOrderTestClass> _customOrderDataReader;

public AsyncEnumerableDataReaderTests()
private readonly DbContainerFixture _fixture;

public AsyncEnumerableDataReaderTests(DbContainerFixture fixture)
{
_fixture = fixture;
_connectionString = fixture.TestConnectionString;

//
// Setup for testing default mapping using the source entity's property positions as the ordinals.
//

_enumerable = new[] { new MyTestClass() }.ToAsyncEnumerable();

TestHelpers.ExecuteNonQuery(_connectionString, $"DROP TABLE IF EXISTS [dbo].[{_tableName}]");
_fixture.ExecuteNonQuery(_connectionString, $"DROP TABLE IF EXISTS [dbo].[{_tableName}]");

TestHelpers.ExecuteNonQuery(_connectionString,
_fixture.ExecuteNonQuery(_connectionString,
"CREATE TABLE [dbo].[" + _tableName + "](" +
"[Id] [int] IDENTITY(1,1) NOT NULL," +
"[Name] [nvarchar](50) NULL," +
Expand All @@ -54,9 +60,9 @@ public AsyncEnumerableDataReaderTests()

_customOrderEnumerable = new[] { new MyCustomOrderTestClass() }.ToAsyncEnumerable();

TestHelpers.ExecuteNonQuery(_connectionString, $"DROP TABLE IF EXISTS [dbo].[{_customOrderTableName}]");
_fixture.ExecuteNonQuery(_connectionString, $"DROP TABLE IF EXISTS [dbo].[{_customOrderTableName}]");

TestHelpers.ExecuteNonQuery(_connectionString,
_fixture.ExecuteNonQuery(_connectionString,
"CREATE TABLE [dbo].[" + _customOrderTableName + "](" +
"[Id] [int] IDENTITY(1,1) NOT NULL," +
"[FirstName] [nvarchar](50) NULL," +
Expand Down Expand Up @@ -367,8 +373,8 @@ public async Task InitializeAsync()

public Task DisposeAsync()
{
TestHelpers.ExecuteNonQuery(_connectionString, "DROP TABLE " + _tableName);
TestHelpers.ExecuteNonQuery(_connectionString, "DROP TABLE " + _customOrderTableName);
_fixture.ExecuteNonQuery(_connectionString, "DROP TABLE " + _tableName);
_fixture.ExecuteNonQuery(_connectionString, "DROP TABLE " + _customOrderTableName);

return Task.CompletedTask;
}
Expand Down
1 change: 1 addition & 0 deletions src/BulkWriter.Tests/BulkWriter.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" />
<PackageReference Include="System.Linq.Async" Version="6.0.1" />
<PackageReference Include="Testcontainers.MsSql" Version="3.8.0" />
<PackageReference Include="xunit" Version="2.8.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.1">
<PrivateAssets>all</PrivateAssets>
Expand Down
16 changes: 11 additions & 5 deletions src/BulkWriter.Tests/BulkWriterAsyncEnumerableTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@

namespace BulkWriter.Tests
{
[Collection(nameof(DbContainerFixture))]
public class BulkWriterAsyncEnumerableTests
{
private readonly string _connectionString = TestHelpers.ConnectionString;
private readonly string _connectionString;
private readonly string _tableName = nameof(BulkWriterAsyncTestsMyTestClass);

public class BulkWriterAsyncTestsMyTestClass
Expand All @@ -16,11 +17,16 @@ public class BulkWriterAsyncTestsMyTestClass
public string Name { get; set; }
}

public BulkWriterAsyncEnumerableTests()
private readonly DbContainerFixture _fixture;

public BulkWriterAsyncEnumerableTests(DbContainerFixture fixture)
{
TestHelpers.ExecuteNonQuery(_connectionString, $"DROP TABLE IF EXISTS [dbo].[{_tableName}]");
_fixture = fixture;
_connectionString = fixture.TestConnectionString;

_fixture.ExecuteNonQuery(_connectionString, $"DROP TABLE IF EXISTS [dbo].[{_tableName}]");

TestHelpers.ExecuteNonQuery(_connectionString,
_fixture.ExecuteNonQuery(_connectionString,
"CREATE TABLE [dbo].[" + _tableName + "](" +
"[Id] [int] IDENTITY(1,1) NOT NULL," +
"[Name] [nvarchar](50) NULL," +
Expand All @@ -40,7 +46,7 @@ public async Task CanWriteSync()

await writer.WriteToDatabaseAsync(items);

var count = (int) await TestHelpers.ExecuteScalar(_connectionString, $"SELECT COUNT(1) FROM {_tableName}");
var count = (int) await _fixture.ExecuteScalar(_connectionString, $"SELECT COUNT(1) FROM {_tableName}");

Assert.Equal(1000, count);
}
Expand Down
17 changes: 11 additions & 6 deletions src/BulkWriter.Tests/BulkWriterAsyncTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@

namespace BulkWriter.Tests
{
[Collection(nameof(DbContainerFixture))]
public class BulkWriterAsyncTests
{
private readonly string _connectionString = TestHelpers.ConnectionString;
private readonly string _connectionString;
private readonly string _tableName = nameof(BulkWriterAsyncTestsMyTestClass);

public class BulkWriterAsyncTestsMyTestClass
Expand All @@ -16,11 +17,15 @@ public class BulkWriterAsyncTestsMyTestClass
public string Name { get; set; }
}

public BulkWriterAsyncTests()
private readonly DbContainerFixture _fixture;

public BulkWriterAsyncTests(DbContainerFixture fixture)
{
TestHelpers.ExecuteNonQuery(_connectionString, $"DROP TABLE IF EXISTS [dbo].[{_tableName}]");
_fixture = fixture;
_connectionString = fixture.TestConnectionString;
_fixture.ExecuteNonQuery(_connectionString, $"DROP TABLE IF EXISTS [dbo].[{_tableName}]");

TestHelpers.ExecuteNonQuery(_connectionString,
_fixture.ExecuteNonQuery(_connectionString,
"CREATE TABLE [dbo].[" + _tableName + "](" +
"[Id] [int] IDENTITY(1,1) NOT NULL," +
"[Name] [nvarchar](50) NULL," +
Expand All @@ -37,9 +42,9 @@ public async Task CanWriteSync()

await writer.WriteToDatabaseAsync(items);

var count = (int) await TestHelpers.ExecuteScalar(_connectionString, $"SELECT COUNT(1) FROM {_tableName}");
var count = (int) await _fixture.ExecuteScalar(_connectionString, $"SELECT COUNT(1) FROM {_tableName}");

Assert.Equal(1000, count);
}
}
}
}
21 changes: 15 additions & 6 deletions src/BulkWriter.Tests/BulkWriterInitializationTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,25 @@

namespace BulkWriter.Tests
{
[Collection(nameof(DbContainerFixture))]
public class BulkWriterInitializationTests
{
private readonly string _connectionString = TestHelpers.ConnectionString;
private readonly string _connectionString;

public class BulkWriterInitializationTestsMyTestClass
{
public int Id { get; set; }

public string Name { get; set; }
}

private readonly DbContainerFixture _fixture;

public BulkWriterInitializationTests(DbContainerFixture fixture)
{
_fixture = fixture;
_connectionString = fixture.TestConnectionString;
}

[Table("TestClass2")]
public class BulkWriterInitializationTestsMyTestClassAnnotation
Expand Down Expand Up @@ -51,7 +60,7 @@ public async Task CanSetBulkCopyParameters()

writer.WriteToDatabase(items);

var count = (int)await TestHelpers.ExecuteScalar(_connectionString, $"SELECT COUNT(1) FROM {tableName}");
var count = (int)await _fixture.ExecuteScalar(_connectionString, $"SELECT COUNT(1) FROM {tableName}");

Assert.Equal(10, count);
Assert.True(setupCallbackInvoked);
Expand Down Expand Up @@ -83,17 +92,17 @@ public async Task CanSetBulkCopyParameters_Respects_Table_Annotation()

writer.WriteToDatabase(items);

var count = (int)await TestHelpers.ExecuteScalar(_connectionString, $"SELECT COUNT(1) FROM {tableName }");
var count = (int)await _fixture.ExecuteScalar(_connectionString, $"SELECT COUNT(1) FROM {tableName }");

Assert.Equal(10, count);
Assert.True(setupCallbackInvoked);
}

private string DropCreate(string tableName)
{
TestHelpers.ExecuteNonQuery(_connectionString, $"DROP TABLE IF EXISTS [dbo].[{tableName}]");
_fixture.ExecuteNonQuery(_connectionString, $"DROP TABLE IF EXISTS [dbo].[{tableName}]");

TestHelpers.ExecuteNonQuery(_connectionString,
_fixture.ExecuteNonQuery(_connectionString,
"CREATE TABLE [dbo].[" + tableName + "](" +
"[Id] [int] IDENTITY(1,1) NOT NULL," +
"[Name] [nvarchar](50) NULL," +
Expand All @@ -103,4 +112,4 @@ private string DropCreate(string tableName)
return tableName;
}
}
}
}
Loading

0 comments on commit ae3720d

Please sign in to comment.