Skip to content

Commit 87f9d8a

Browse files
committed
Use DbContainerFixture for MariaDbContainerTest
1 parent a45dda4 commit 87f9d8a

File tree

3 files changed

+36
-23
lines changed

3 files changed

+36
-23
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,20 @@
11
namespace Testcontainers.MariaDb;
22

3-
public abstract class MariaDbContainerTest : IAsyncLifetime
3+
public abstract class MariaDbContainerTest
44
{
5-
private readonly MariaDbContainer _mariaDbContainer;
5+
private readonly MariaDbFixture _mariaDbFixture;
66

7-
protected MariaDbContainerTest(MariaDbContainer mariaDbContainer)
7+
protected MariaDbContainerTest(MariaDbFixture fixture)
88
{
9-
_mariaDbContainer = mariaDbContainer;
10-
}
11-
12-
public Task InitializeAsync()
13-
{
14-
return _mariaDbContainer.StartAsync();
15-
}
16-
17-
public Task DisposeAsync()
18-
{
19-
return _mariaDbContainer.DisposeAsync().AsTask();
9+
_mariaDbFixture = fixture;
2010
}
2111

2212
[Fact]
2313
[Trait(nameof(DockerCli.DockerPlatform), nameof(DockerCli.DockerPlatform.Linux))]
2414
public void ConnectionStateReturnsOpen()
2515
{
2616
// Given
27-
using DbConnection connection = new MySqlConnection(_mariaDbContainer.GetConnectionString());
17+
using DbConnection connection = _mariaDbFixture.CreateDbConnection();
2818

2919
// When
3020
connection.Open();
@@ -41,28 +31,48 @@ public async Task ExecScriptReturnsSuccessful()
4131
const string scriptContent = "SELECT 1;";
4232

4333
// When
44-
var execResult = await _mariaDbContainer.ExecScriptAsync(scriptContent)
34+
var execResult = await _mariaDbFixture.Container.ExecScriptAsync(scriptContent)
4535
.ConfigureAwait(false);
4636

4737
// When
4838
Assert.True(0L.Equals(execResult.ExitCode), execResult.Stderr);
4939
}
5040

5141
[UsedImplicitly]
52-
public sealed class MariaDbUserConfiguration : MariaDbContainerTest
42+
public sealed class MariaDbUserConfiguration : MariaDbContainerTest, IClassFixture<MariaDbFixture>
5343
{
54-
public MariaDbUserConfiguration()
55-
: base(new MariaDbBuilder().Build())
44+
public MariaDbUserConfiguration(MariaDbFixture fixture)
45+
: base(fixture)
5646
{
5747
}
5848
}
5949

6050
[UsedImplicitly]
61-
public sealed class MariaDbRootConfiguration : MariaDbContainerTest
51+
public sealed class MariaDbRootConfiguration : MariaDbContainerTest, IClassFixture<MariaDbRootUserFixture>
52+
{
53+
public MariaDbRootConfiguration(MariaDbRootUserFixture fixture)
54+
: base(fixture)
55+
{
56+
}
57+
}
58+
59+
public class MariaDbFixture : DbContainerFixture<MariaDbBuilder, MariaDbContainer>
6260
{
63-
public MariaDbRootConfiguration()
64-
: base(new MariaDbBuilder().WithUsername("root").Build())
61+
public MariaDbFixture(IMessageSink messageSink)
62+
: base(messageSink)
6563
{
6664
}
65+
66+
public override DbProviderFactory DbProviderFactory => MySqlConnectorFactory.Instance;
67+
}
68+
69+
public class MariaDbRootUserFixture : MariaDbFixture
70+
{
71+
public MariaDbRootUserFixture(IMessageSink messageSink)
72+
: base(messageSink)
73+
{
74+
}
75+
76+
protected override MariaDbBuilder Configure(MariaDbBuilder builder) => builder.WithUsername("root");
6777
}
6878
}

tests/Testcontainers.MariaDb.Tests/Testcontainers.MariaDb.Tests.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
</ItemGroup>
1414
<ItemGroup>
1515
<ProjectReference Include="$(SolutionDir)src/Testcontainers.MariaDb/Testcontainers.MariaDb.csproj"/>
16+
<ProjectReference Include="$(SolutionDir)src/Testcontainers.Xunit/Testcontainers.Xunit.csproj" />
1617
<ProjectReference Include="$(SolutionDir)tests/Testcontainers.Commons/Testcontainers.Commons.csproj"/>
1718
</ItemGroup>
1819
</Project>

tests/Testcontainers.MariaDb.Tests/Usings.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
global using System.Data.Common;
33
global using System.Threading.Tasks;
44
global using DotNet.Testcontainers.Commons;
5+
global using DotNet.Testcontainers.Xunit;
56
global using JetBrains.Annotations;
67
global using MySqlConnector;
7-
global using Xunit;
8+
global using Xunit;
9+
global using Xunit.Abstractions;

0 commit comments

Comments
 (0)