diff --git a/src/Testcontainers.Xunit/ContainerLifetime.cs b/src/Testcontainers.Xunit/ContainerLifetime.cs index dffaf57ae..35a834537 100644 --- a/src/Testcontainers.Xunit/ContainerLifetime.cs +++ b/src/Testcontainers.Xunit/ContainerLifetime.cs @@ -16,7 +16,7 @@ public abstract class ContainerLifetime : IAsy protected ContainerLifetime(ILogger logger) { - _container = new Lazy(() => Configure(new TBuilderEntity().WithLogger(logger)).Build()); + _container = new Lazy(() => Configure(Configure()).WithLogger(logger).Build()); } /// @@ -48,6 +48,25 @@ await DisposeAsyncCore() } #endif + /// + /// Configures the container instance. + /// + /// + /// + /// public class MariaDbRootUserFixture(IMessageSink messageSink) : DbContainerFixture<MariaDbBuilder, MariaDbContainer>(messageSink) + /// { + /// public override DbProviderFactory DbProviderFactory => MySqlConnectorFactory.Instance; + ///
+ /// protected override MariaDbBuilder Configure() + /// { + /// return new MariaDbBuilder("mariadb:12").WithUsername("root"); + /// } + /// } + ///
+ ///
+ /// A configured instance of . + protected virtual TBuilderEntity Configure() => new(); + /// /// Extension method to further configure the container instance. /// @@ -66,6 +85,7 @@ await DisposeAsyncCore() /// /// The container builder to configure. /// A configured instance of . + [Obsolete("This method is obsolete and will be removed. Use the parameterless Configure() method and create the builder explicitly instead.")] protected virtual TBuilderEntity Configure(TBuilderEntity builder) { return builder; diff --git a/src/Testcontainers.Xunit/ContainerTest.cs b/src/Testcontainers.Xunit/ContainerTest.cs index f9c0a9051..e69564c57 100644 --- a/src/Testcontainers.Xunit/ContainerTest.cs +++ b/src/Testcontainers.Xunit/ContainerTest.cs @@ -14,5 +14,6 @@ public abstract class ContainerTest(ITestOutpu where TBuilderEntity : IContainerBuilder, new() where TContainerEntity : IContainer { + [Obsolete("This method is obsolete and will be removed. Use the parameterless Configure() method and create the builder explicitly instead.")] protected override TBuilderEntity Configure(TBuilderEntity builder) => configure != null ? configure(builder) : builder; } \ No newline at end of file diff --git a/tests/Testcontainers.Cassandra.Tests/CassandraContainerTest.cs b/tests/Testcontainers.Cassandra.Tests/CassandraContainerTest.cs index 78847eae3..4ff8296a2 100644 --- a/tests/Testcontainers.Cassandra.Tests/CassandraContainerTest.cs +++ b/tests/Testcontainers.Cassandra.Tests/CassandraContainerTest.cs @@ -60,8 +60,8 @@ public async Task ExecScriptAsyncReturnsSuccess() public class CassandraDefaultFixture(IMessageSink messageSink) : DbContainerFixture(messageSink) { - protected override CassandraBuilder Configure(CassandraBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile()); + protected override CassandraBuilder Configure() + => new CassandraBuilder(TestSession.GetImageFromDockerfile()); public override DbProviderFactory DbProviderFactory => CqlProviderFactory.Instance; @@ -71,8 +71,8 @@ public override DbProviderFactory DbProviderFactory public class CassandraWaitForDatabaseFixture(IMessageSink messageSink) : CassandraDefaultFixture(messageSink) { - protected override CassandraBuilder Configure(CassandraBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile()).WithWaitStrategy(Wait.ForUnixContainer().UntilDatabaseIsAvailable(DbProviderFactory)); + protected override CassandraBuilder Configure() + => base.Configure().WithWaitStrategy(Wait.ForUnixContainer().UntilDatabaseIsAvailable(DbProviderFactory)); } [UsedImplicitly] diff --git a/tests/Testcontainers.ClickHouse.Tests/ClickHouseContainerTest.cs b/tests/Testcontainers.ClickHouse.Tests/ClickHouseContainerTest.cs index 6ce827dbe..5a7e57d4e 100644 --- a/tests/Testcontainers.ClickHouse.Tests/ClickHouseContainerTest.cs +++ b/tests/Testcontainers.ClickHouse.Tests/ClickHouseContainerTest.cs @@ -35,8 +35,8 @@ public async Task ExecScriptReturnsSuccessful() public class ClickHouseDefaultFixture(IMessageSink messageSink) : DbContainerFixture(messageSink) { - protected override ClickHouseBuilder Configure(ClickHouseBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile()); + protected override ClickHouseBuilder Configure() + => new ClickHouseBuilder(TestSession.GetImageFromDockerfile()); public override DbProviderFactory DbProviderFactory => ClickHouseConnectionFactory.Instance; @@ -46,8 +46,8 @@ public override DbProviderFactory DbProviderFactory public class ClickHouseWaitForDatabaseFixture(IMessageSink messageSink) : ClickHouseDefaultFixture(messageSink) { - protected override ClickHouseBuilder Configure(ClickHouseBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile()).WithWaitStrategy(Wait.ForUnixContainer().UntilDatabaseIsAvailable(DbProviderFactory)); + protected override ClickHouseBuilder Configure() + => base.Configure().WithWaitStrategy(Wait.ForUnixContainer().UntilDatabaseIsAvailable(DbProviderFactory)); } [UsedImplicitly] diff --git a/tests/Testcontainers.CockroachDb.Tests/CockroachDbContainerTest.cs b/tests/Testcontainers.CockroachDb.Tests/CockroachDbContainerTest.cs index ae62785eb..8f1756ca5 100644 --- a/tests/Testcontainers.CockroachDb.Tests/CockroachDbContainerTest.cs +++ b/tests/Testcontainers.CockroachDb.Tests/CockroachDbContainerTest.cs @@ -35,8 +35,8 @@ public async Task ExecScriptReturnsSuccessful() public class CockroachDbDefaultFixture(IMessageSink messageSink) : DbContainerFixture(messageSink) { - protected override CockroachDbBuilder Configure(CockroachDbBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile()); + protected override CockroachDbBuilder Configure() + => new CockroachDbBuilder(TestSession.GetImageFromDockerfile()); public override DbProviderFactory DbProviderFactory => NpgsqlFactory.Instance; @@ -46,8 +46,8 @@ public override DbProviderFactory DbProviderFactory public class CockroachDbWaitForDatabaseFixture(IMessageSink messageSink) : CockroachDbDefaultFixture(messageSink) { - protected override CockroachDbBuilder Configure(CockroachDbBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile()).WithWaitStrategy(Wait.ForUnixContainer().UntilDatabaseIsAvailable(DbProviderFactory)); + protected override CockroachDbBuilder Configure() + => base.Configure().WithWaitStrategy(Wait.ForUnixContainer().UntilDatabaseIsAvailable(DbProviderFactory)); } [UsedImplicitly] diff --git a/tests/Testcontainers.Db2.Tests/Db2ContainerTest.cs b/tests/Testcontainers.Db2.Tests/Db2ContainerTest.cs index 49909798c..a1ccab998 100644 --- a/tests/Testcontainers.Db2.Tests/Db2ContainerTest.cs +++ b/tests/Testcontainers.Db2.Tests/Db2ContainerTest.cs @@ -40,16 +40,16 @@ public class Db2DefaultFixture(IMessageSink messageSink) public override DbProviderFactory DbProviderFactory => DB2Factory.Instance; - protected override Db2Builder Configure(Db2Builder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile()).WithAcceptLicenseAgreement(true); + protected override Db2Builder Configure() + => new Db2Builder(TestSession.GetImageFromDockerfile()).WithAcceptLicenseAgreement(true); } [UsedImplicitly] public class Db2WaitForDatabaseFixture(IMessageSink messageSink) : Db2DefaultFixture(messageSink) { - protected override Db2Builder Configure(Db2Builder builder) - => base.Configure(builder).WithImage(TestSession.GetImageFromDockerfile()).WithWaitStrategy(Wait.ForUnixContainer().UntilDatabaseIsAvailable(DbProviderFactory)); + protected override Db2Builder Configure() + => base.Configure().WithWaitStrategy(Wait.ForUnixContainer().UntilDatabaseIsAvailable(DbProviderFactory)); } [UsedImplicitly] diff --git a/tests/Testcontainers.FirebirdSql.Tests/FirebirdSqlContainerTest.cs b/tests/Testcontainers.FirebirdSql.Tests/FirebirdSqlContainerTest.cs index 8180d77c8..7f85a7fe4 100644 --- a/tests/Testcontainers.FirebirdSql.Tests/FirebirdSqlContainerTest.cs +++ b/tests/Testcontainers.FirebirdSql.Tests/FirebirdSqlContainerTest.cs @@ -35,8 +35,8 @@ public async Task ExecScriptReturnsSuccessful() public class FirebirdSqlDefaultFixture(IMessageSink messageSink) : DbContainerFixture(messageSink) { - protected override FirebirdSqlBuilder Configure(FirebirdSqlBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile()); + protected override FirebirdSqlBuilder Configure() + => new FirebirdSqlBuilder(TestSession.GetImageFromDockerfile()); public override DbProviderFactory DbProviderFactory => FirebirdClientFactory.Instance; @@ -46,40 +46,40 @@ public override DbProviderFactory DbProviderFactory public class FirebirdSqlWaitForDatabaseFixture(IMessageSink messageSink) : FirebirdSqlDefaultFixture(messageSink) { - protected override FirebirdSqlBuilder Configure(FirebirdSqlBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile()).WithWaitStrategy(Wait.ForUnixContainer().UntilDatabaseIsAvailable(DbProviderFactory)); + protected override FirebirdSqlBuilder Configure() + => base.Configure().WithWaitStrategy(Wait.ForUnixContainer().UntilDatabaseIsAvailable(DbProviderFactory)); } [UsedImplicitly] public class FirebirdSql25ScFixture(IMessageSink messageSink) : FirebirdSqlDefaultFixture(messageSink) { - protected override FirebirdSqlBuilder Configure(FirebirdSqlBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile(stage: "fb2.5-sc")); + protected override FirebirdSqlBuilder Configure() + => new FirebirdSqlBuilder(TestSession.GetImageFromDockerfile(stage: "fb2.5-sc")); } [UsedImplicitly] public class FirebirdSql25SsFixture(IMessageSink messageSink) : FirebirdSqlDefaultFixture(messageSink) { - protected override FirebirdSqlBuilder Configure(FirebirdSqlBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile(stage: "fb2.5-ss")); + protected override FirebirdSqlBuilder Configure() + => new FirebirdSqlBuilder(TestSession.GetImageFromDockerfile(stage: "fb2.5-ss")); } [UsedImplicitly] public class FirebirdSql30Fixture(IMessageSink messageSink) : FirebirdSqlDefaultFixture(messageSink) { - protected override FirebirdSqlBuilder Configure(FirebirdSqlBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile(stage: "fb3.0")); + protected override FirebirdSqlBuilder Configure() + => new FirebirdSqlBuilder(TestSession.GetImageFromDockerfile(stage: "fb3.0")); } [UsedImplicitly] public class FirebirdSqlSysdbaFixture(IMessageSink messageSink) : FirebirdSqlDefaultFixture(messageSink) { - protected override FirebirdSqlBuilder Configure(FirebirdSqlBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile()).WithUsername("sysdba").WithPassword("some-password"); + protected override FirebirdSqlBuilder Configure() + => base.Configure().WithUsername("sysdba").WithPassword("some-password"); } [UsedImplicitly] diff --git a/tests/Testcontainers.MariaDb.Tests/MariaDbContainerTest.cs b/tests/Testcontainers.MariaDb.Tests/MariaDbContainerTest.cs index 218797020..170d9db12 100644 --- a/tests/Testcontainers.MariaDb.Tests/MariaDbContainerTest.cs +++ b/tests/Testcontainers.MariaDb.Tests/MariaDbContainerTest.cs @@ -35,8 +35,8 @@ public async Task ExecScriptReturnsSuccessful() public class MariaDbDefaultFixture(IMessageSink messageSink) : DbContainerFixture(messageSink) { - protected override MariaDbBuilder Configure(MariaDbBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile()); + protected override MariaDbBuilder Configure() + => new MariaDbBuilder(TestSession.GetImageFromDockerfile()); public override DbProviderFactory DbProviderFactory => MySqlConnectorFactory.Instance; @@ -46,8 +46,8 @@ public override DbProviderFactory DbProviderFactory public class MariaDbWaitForDatabaseFixture(IMessageSink messageSink) : MariaDbDefaultFixture(messageSink) { - protected override MariaDbBuilder Configure(MariaDbBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile()).WithWaitStrategy(Wait.ForUnixContainer().UntilDatabaseIsAvailable(DbProviderFactory)); + protected override MariaDbBuilder Configure() + => base.Configure().WithWaitStrategy(Wait.ForUnixContainer().UntilDatabaseIsAvailable(DbProviderFactory)); } [UsedImplicitly] diff --git a/tests/Testcontainers.Mosquitto.Tests/MosquittoContainerTest.cs b/tests/Testcontainers.Mosquitto.Tests/MosquittoContainerTest.cs index f44a49e43..5882faf1d 100644 --- a/tests/Testcontainers.Mosquitto.Tests/MosquittoContainerTest.cs +++ b/tests/Testcontainers.Mosquitto.Tests/MosquittoContainerTest.cs @@ -13,6 +13,9 @@ private MosquittoContainerTest(ITestOutputHelper testOutputHelper) { } + protected override MosquittoBuilder Configure() + => new MosquittoBuilder(TestSession.GetImageFromDockerfile()); + protected abstract MqttClientOptions GetClientOptions(); [Fact] @@ -87,10 +90,8 @@ protected override MqttClientOptions GetClientOptions() public sealed class TcpEncryptedUnauthenticatedConfiguration(ITestOutputHelper testOutputHelper) : MosquittoContainerTest(testOutputHelper) { - protected override MosquittoBuilder Configure(MosquittoBuilder builder) - { - return builder.WithImage(TestSession.GetImageFromDockerfile()).WithCertificate(Certificate, CertificateKey); - } + protected override MosquittoBuilder Configure() + => base.Configure().WithCertificate(Certificate, CertificateKey); protected override MqttClientOptions GetClientOptions() { @@ -106,11 +107,6 @@ protected override MqttClientOptions GetClientOptions() public sealed class WebSocketUnencryptedUnauthenticatedConfiguration(ITestOutputHelper testOutputHelper) : MosquittoContainerTest(testOutputHelper) { - protected override MosquittoBuilder Configure(MosquittoBuilder builder) - { - return builder.WithImage(TestSession.GetImageFromDockerfile()); - } - protected override MqttClientOptions GetClientOptions() { return new MqttClientOptionsBuilder() @@ -123,10 +119,8 @@ protected override MqttClientOptions GetClientOptions() public sealed class WebSocketEncryptedUnauthenticatedConfiguration(ITestOutputHelper testOutputHelper) : MosquittoContainerTest(testOutputHelper) { - protected override MosquittoBuilder Configure(MosquittoBuilder builder) - { - return builder.WithImage(TestSession.GetImageFromDockerfile()).WithCertificate(Certificate, CertificateKey); - } + protected override MosquittoBuilder Configure() + => base.Configure().WithCertificate(Certificate, CertificateKey); protected override MqttClientOptions GetClientOptions() { diff --git a/tests/Testcontainers.MsSql.Tests/MsSqlContainerTest.cs b/tests/Testcontainers.MsSql.Tests/MsSqlContainerTest.cs index a582f3ee7..3e8add598 100644 --- a/tests/Testcontainers.MsSql.Tests/MsSqlContainerTest.cs +++ b/tests/Testcontainers.MsSql.Tests/MsSqlContainerTest.cs @@ -37,8 +37,8 @@ public async Task ExecScriptReturnsSuccessful() public class MsSqlDefaultFixture(IMessageSink messageSink) : DbContainerFixture(messageSink) { - protected override MsSqlBuilder Configure(MsSqlBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile()); + protected override MsSqlBuilder Configure() + => new MsSqlBuilder(TestSession.GetImageFromDockerfile()); public override DbProviderFactory DbProviderFactory => SqlClientFactory.Instance; @@ -48,8 +48,8 @@ public override DbProviderFactory DbProviderFactory public class MsSqlWaitForDatabaseFixture(IMessageSink messageSink) : MsSqlDefaultFixture(messageSink) { - protected override MsSqlBuilder Configure(MsSqlBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile()).WithWaitStrategy(Wait.ForUnixContainer().UntilDatabaseIsAvailable(DbProviderFactory)); + protected override MsSqlBuilder Configure() + => base.Configure().WithWaitStrategy(Wait.ForUnixContainer().UntilDatabaseIsAvailable(DbProviderFactory)); } [UsedImplicitly] diff --git a/tests/Testcontainers.MySql.Tests/MySqlContainerTest.cs b/tests/Testcontainers.MySql.Tests/MySqlContainerTest.cs index 59dc0d69a..7e722329e 100644 --- a/tests/Testcontainers.MySql.Tests/MySqlContainerTest.cs +++ b/tests/Testcontainers.MySql.Tests/MySqlContainerTest.cs @@ -35,8 +35,8 @@ public async Task ExecScriptReturnsSuccessful() public class MySqlDefaultFixture(IMessageSink messageSink) : DbContainerFixture(messageSink) { - protected override MySqlBuilder Configure(MySqlBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile()); + protected override MySqlBuilder Configure() + => new MySqlBuilder(TestSession.GetImageFromDockerfile()); public override DbProviderFactory DbProviderFactory => MySqlConnectorFactory.Instance; @@ -46,16 +46,16 @@ public override DbProviderFactory DbProviderFactory public class MySqlWaitForDatabaseFixture(IMessageSink messageSink) : MySqlDefaultFixture(messageSink) { - protected override MySqlBuilder Configure(MySqlBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile()).WithWaitStrategy(Wait.ForUnixContainer().UntilDatabaseIsAvailable(DbProviderFactory)); + protected override MySqlBuilder Configure() + => base.Configure().WithWaitStrategy(Wait.ForUnixContainer().UntilDatabaseIsAvailable(DbProviderFactory)); } [UsedImplicitly] public class MySqlRootFixture(IMessageSink messageSink) : MySqlDefaultFixture(messageSink) { - protected override MySqlBuilder Configure(MySqlBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile()).WithUsername("root"); + protected override MySqlBuilder Configure() + => base.Configure().WithUsername("root"); } [UsedImplicitly] @@ -63,8 +63,8 @@ public class MySqlGitHubIssue1142Fixture(IMessageSink messageSink) : MySqlDefaultFixture(messageSink) { // https://github.com/testcontainers/testcontainers-dotnet/issues/1142. - protected override MySqlBuilder Configure(MySqlBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile(stage: "mysql8.0.28")); + protected override MySqlBuilder Configure() + => new MySqlBuilder(TestSession.GetImageFromDockerfile(stage: "mysql8.0.28")); } [UsedImplicitly] diff --git a/tests/Testcontainers.Oracle.Tests/OracleContainerTest.cs b/tests/Testcontainers.Oracle.Tests/OracleContainerTest.cs index 5f00d5302..f53d5dac8 100644 --- a/tests/Testcontainers.Oracle.Tests/OracleContainerTest.cs +++ b/tests/Testcontainers.Oracle.Tests/OracleContainerTest.cs @@ -32,19 +32,14 @@ public async Task ExecScriptReturnsSuccessful() Assert.Empty(execResult.Stderr); } - public abstract class OracleFixture(IMessageSink messageSink, string edition, int? version, string database = null, bool waitForDatabase = false) : DbContainerFixture(messageSink) + public abstract class OracleFixture(IMessageSink messageSink, string edition, string version, string database = null, bool waitForDatabase = false) : DbContainerFixture(messageSink) { public override DbProviderFactory DbProviderFactory => OracleClientFactory.Instance; - protected override OracleBuilder Configure(OracleBuilder builder) + protected override OracleBuilder Configure() { - if (edition == null && version == null) - { - return Apply(builder, oracle => oracle); - } - - var image = $"gvenzl/oracle-{edition}:{version}-slim-faststart"; - return database == null ? Apply(builder, oracle => oracle.WithImage(image)) : Apply(builder, oracle => oracle.WithImage(image).WithDatabase(database)); + var builder = new OracleBuilder($"gvenzl/oracle-{edition}:{version}-slim-faststart"); + return database == null ? Apply(builder, oracle => oracle) : Apply(builder, oracle => oracle.WithDatabase(database)); } private OracleBuilder Apply(OracleBuilder builder, Func configure) @@ -55,39 +50,39 @@ private OracleBuilder Apply(OracleBuilder builder, Func; - [UsedImplicitly] public sealed class OracleDefaultFixture(IMessageSink messageSink) : OracleFixture(messageSink, null, null); + [UsedImplicitly] public sealed class OracleDefaultFixture(IMessageSink messageSink) : OracleFixture(messageSink, "xe", "21.3.0"); #endif #if ORACLE_11 [UsedImplicitly] public sealed class Oracle11(Oracle11Fixture fixture) : OracleContainerTest(fixture), IClassFixture; - [UsedImplicitly] public sealed class Oracle11Fixture(IMessageSink messageSink) : OracleFixture(messageSink, "xe", 11); - [UsedImplicitly] public sealed class Oracle11FixtureWaitForDatabase(IMessageSink messageSink) : OracleFixture(messageSink, "xe", 11, waitForDatabase: true); + [UsedImplicitly] public sealed class Oracle11Fixture(IMessageSink messageSink) : OracleFixture(messageSink, "xe", "11"); + [UsedImplicitly] public sealed class Oracle11FixtureWaitForDatabase(IMessageSink messageSink) : OracleFixture(messageSink, "xe", "11", waitForDatabase: true); #endif #if ORACLE_18 [UsedImplicitly] public sealed class Oracle18(Oracle18Fixture fixture) : OracleContainerTest(fixture), IClassFixture; [UsedImplicitly] public sealed class Oracle18Default(Oracle18FixtureDefault fixture) : OracleContainerTest(fixture), IClassFixture; [UsedImplicitly] public sealed class Oracle18Scott(Oracle18FixtureScott fixture) : OracleContainerTest(fixture), IClassFixture; - [UsedImplicitly] public sealed class Oracle18Fixture(IMessageSink messageSink) : OracleFixture(messageSink, "xe", 18); - [UsedImplicitly] public sealed class Oracle18FixtureDefault(IMessageSink messageSink) : OracleFixture(messageSink, "xe", 18, "XEPDB1", waitForDatabase: true); - [UsedImplicitly] public sealed class Oracle18FixtureScott(IMessageSink messageSink) : OracleFixture(messageSink, "xe", 18, "SCOTT"); + [UsedImplicitly] public sealed class Oracle18Fixture(IMessageSink messageSink) : OracleFixture(messageSink, "xe", "18"); + [UsedImplicitly] public sealed class Oracle18FixtureDefault(IMessageSink messageSink) : OracleFixture(messageSink, "xe", "18", "XEPDB1", waitForDatabase: true); + [UsedImplicitly] public sealed class Oracle18FixtureScott(IMessageSink messageSink) : OracleFixture(messageSink, "xe", "18", "SCOTT"); #endif #if ORACLE_21 [UsedImplicitly] public sealed class Oracle21(Oracle21Fixture fixture) : OracleContainerTest(fixture), IClassFixture; [UsedImplicitly] public sealed class Oracle21Default(Oracle21FixtureDefault fixture) : OracleContainerTest(fixture), IClassFixture; [UsedImplicitly] public sealed class Oracle21Scott(Oracle21FixtureScott fixture) : OracleContainerTest(fixture), IClassFixture; - [UsedImplicitly] public sealed class Oracle21Fixture(IMessageSink messageSink) : OracleFixture(messageSink, "xe", 21); - [UsedImplicitly] public sealed class Oracle21FixtureDefault(IMessageSink messageSink) : OracleFixture(messageSink, "xe", 21, "XEPDB1", waitForDatabase: true); - [UsedImplicitly] public sealed class Oracle21FixtureScott(IMessageSink messageSink) : OracleFixture(messageSink, "xe", 21, "SCOTT"); + [UsedImplicitly] public sealed class Oracle21Fixture(IMessageSink messageSink) : OracleFixture(messageSink, "xe", "21"); + [UsedImplicitly] public sealed class Oracle21FixtureDefault(IMessageSink messageSink) : OracleFixture(messageSink, "xe", "21", "XEPDB1", waitForDatabase: true); + [UsedImplicitly] public sealed class Oracle21FixtureScott(IMessageSink messageSink) : OracleFixture(messageSink, "xe", "21", "SCOTT"); #endif #if ORACLE_23 [UsedImplicitly] public sealed class Oracle23(Oracle23Fixture fixture) : OracleContainerTest(fixture), IClassFixture; [UsedImplicitly] public sealed class Oracle23Default(Oracle23FixtureDefault fixture) : OracleContainerTest(fixture), IClassFixture; [UsedImplicitly] public sealed class Oracle23Scott(Oracle23FixtureScott fixture) : OracleContainerTest(fixture), IClassFixture; - [UsedImplicitly] public sealed class Oracle23Fixture(IMessageSink messageSink) : OracleFixture(messageSink, "free", 23); - [UsedImplicitly] public sealed class Oracle23FixtureDefault(IMessageSink messageSink) : OracleFixture(messageSink, "free", 23, "FREEPDB1", waitForDatabase: true); - [UsedImplicitly] public sealed class Oracle23FixtureScott(IMessageSink messageSink) : OracleFixture(messageSink, "free", 23, "SCOTT"); + [UsedImplicitly] public sealed class Oracle23Fixture(IMessageSink messageSink) : OracleFixture(messageSink, "free", "23"); + [UsedImplicitly] public sealed class Oracle23FixtureDefault(IMessageSink messageSink) : OracleFixture(messageSink, "free", "23", "FREEPDB1", waitForDatabase: true); + [UsedImplicitly] public sealed class Oracle23FixtureScott(IMessageSink messageSink) : OracleFixture(messageSink, "free", "23", "SCOTT"); #endif } \ No newline at end of file diff --git a/tests/Testcontainers.PostgreSql.Tests/PostgreSqlContainerTest.cs b/tests/Testcontainers.PostgreSql.Tests/PostgreSqlContainerTest.cs index 70d8cd863..58cf9ff36 100644 --- a/tests/Testcontainers.PostgreSql.Tests/PostgreSqlContainerTest.cs +++ b/tests/Testcontainers.PostgreSql.Tests/PostgreSqlContainerTest.cs @@ -69,8 +69,8 @@ await _fixture.Container.StartAsync(_cts.Token) public class PostgreSqlDefaultFixture(IMessageSink messageSink) : DbContainerFixture(messageSink) { - protected override PostgreSqlBuilder Configure(PostgreSqlBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile()); + protected override PostgreSqlBuilder Configure() + => new PostgreSqlBuilder(TestSession.GetImageFromDockerfile()); public override DbProviderFactory DbProviderFactory => NpgsqlFactory.Instance; @@ -80,8 +80,8 @@ public override DbProviderFactory DbProviderFactory public class PostgreSqlWaitForDatabaseFixture(IMessageSink messageSink) : PostgreSqlDefaultFixture(messageSink) { - protected override PostgreSqlBuilder Configure(PostgreSqlBuilder builder) - => builder.WithImage(TestSession.GetImageFromDockerfile()).WithWaitStrategy(Wait.ForUnixContainer().UntilDatabaseIsAvailable(DbProviderFactory)); + protected override PostgreSqlBuilder Configure() + => base.Configure().WithWaitStrategy(Wait.ForUnixContainer().UntilDatabaseIsAvailable(DbProviderFactory)); } [UsedImplicitly] diff --git a/tests/Testcontainers.Xunit.Tests/PostgreSqlContainer.cs b/tests/Testcontainers.Xunit.Tests/PostgreSqlContainer.cs index 917c7b3a3..57d69e20f 100644 --- a/tests/Testcontainers.Xunit.Tests/PostgreSqlContainer.cs +++ b/tests/Testcontainers.Xunit.Tests/PostgreSqlContainer.cs @@ -4,10 +4,9 @@ namespace Testcontainers.Xunit.Example3; public sealed partial class PostgreSqlContainerTest(ITestOutputHelper testOutputHelper) : DbContainerTest(testOutputHelper) { - protected override PostgreSqlBuilder Configure(PostgreSqlBuilder builder) + protected override PostgreSqlBuilder Configure() { - return builder - .WithImage("postgres:15.1") + return new PostgreSqlBuilder("postgres:15.1") .WithResourceMapping("Chinook_PostgreSql_AutoIncrementPKs.sql", "/docker-entrypoint-initdb.d/"); } } diff --git a/tests/Testcontainers.Xunit.Tests/RedisContainerTest`1.cs b/tests/Testcontainers.Xunit.Tests/RedisContainerTest`1.cs index 8d1aa2ef5..9fda50382 100644 --- a/tests/Testcontainers.Xunit.Tests/RedisContainerTest`1.cs +++ b/tests/Testcontainers.Xunit.Tests/RedisContainerTest`1.cs @@ -4,10 +4,10 @@ namespace Testcontainers.Xunit.Example1; public sealed partial class RedisContainerTest(ITestOutputHelper testOutputHelper) : ContainerTest(testOutputHelper) { - protected override RedisBuilder Configure(RedisBuilder builder) + protected override RedisBuilder Configure() { // 👇 Configure your container instance here. - return builder.WithImage("redis:7.0"); + return new RedisBuilder("redis:7.0"); } } // # --8<-- [end:ConfigureRedisContainer] diff --git a/tests/Testcontainers.Xunit.Tests/RedisContainerTest`2.cs b/tests/Testcontainers.Xunit.Tests/RedisContainerTest`2.cs index 18b767832..9ae2b3cf8 100644 --- a/tests/Testcontainers.Xunit.Tests/RedisContainerTest`2.cs +++ b/tests/Testcontainers.Xunit.Tests/RedisContainerTest`2.cs @@ -5,9 +5,9 @@ namespace Testcontainers.Xunit.Example2; public sealed class RedisContainerFixture(IMessageSink messageSink) : ContainerFixture(messageSink) { - protected override RedisBuilder Configure(RedisBuilder builder) + protected override RedisBuilder Configure() { - return builder.WithImage("redis:7.0"); + return new RedisBuilder("redis:7.0"); } } // # --8<-- [end:ConfigureRedisContainer]