Skip to content

Commit 1d03ac0

Browse files
committed
Remove the obsolete TBuilderEntity Configure(TBuilderEntity builder) method
Also make ContainerFixture abstract because subclasses must now implement the `TBuilderEntity Configure()` method.
1 parent e98d679 commit 1d03ac0

5 files changed

Lines changed: 12 additions & 40 deletions

File tree

src/Testcontainers.Xunit/ContainerFixture.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace Testcontainers.Xunit;
99
/// <typeparam name="TBuilderEntity">The builder entity.</typeparam>
1010
/// <typeparam name="TContainerEntity">The container entity.</typeparam>
1111
[PublicAPI]
12-
public class ContainerFixture<TBuilderEntity, TContainerEntity>(IMessageSink messageSink)
12+
public abstract class ContainerFixture<TBuilderEntity, TContainerEntity>(IMessageSink messageSink)
1313
: ContainerLifetime<TBuilderEntity, TContainerEntity>(new MessageSinkLogger(messageSink))
14-
where TBuilderEntity : IContainerBuilder<TBuilderEntity, TContainerEntity, IContainerConfiguration>, new()
14+
where TBuilderEntity : IContainerBuilder<TBuilderEntity, TContainerEntity, IContainerConfiguration>
1515
where TContainerEntity : IContainer;

src/Testcontainers.Xunit/ContainerLifetime.cs

Lines changed: 3 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace Testcontainers.Xunit;
66
/// <typeparam name="TBuilderEntity">The builder entity.</typeparam>
77
/// <typeparam name="TContainerEntity">The container entity.</typeparam>
88
public abstract class ContainerLifetime<TBuilderEntity, TContainerEntity> : IAsyncLifetime
9-
where TBuilderEntity : IContainerBuilder<TBuilderEntity, TContainerEntity, IContainerConfiguration>, new()
9+
where TBuilderEntity : IContainerBuilder<TBuilderEntity, TContainerEntity, IContainerConfiguration>
1010
where TContainerEntity : IContainer
1111
{
1212
private readonly Lazy<TContainerEntity> _container;
@@ -16,7 +16,7 @@ public abstract class ContainerLifetime<TBuilderEntity, TContainerEntity> : IAsy
1616

1717
protected ContainerLifetime(ILogger logger)
1818
{
19-
_container = new Lazy<TContainerEntity>(() => Configure(Configure()).WithLogger(logger).Build());
19+
_container = new Lazy<TContainerEntity>(() => Configure().WithLogger(logger).Build());
2020
}
2121

2222
/// <summary>
@@ -65,31 +65,7 @@ await DisposeAsyncCore()
6565
/// </code>
6666
/// </example>
6767
/// <returns>A configured instance of <typeparamref name="TBuilderEntity" />.</returns>
68-
protected virtual TBuilderEntity Configure() => new();
69-
70-
/// <summary>
71-
/// Extension method to further configure the container instance.
72-
/// </summary>
73-
/// <example>
74-
/// <code>
75-
/// public class MariaDbRootUserFixture(IMessageSink messageSink) : DbContainerFixture&lt;MariaDbBuilder, MariaDbContainer&gt;(messageSink)
76-
/// {
77-
/// public override DbProviderFactory DbProviderFactory =&gt; MySqlConnectorFactory.Instance;
78-
/// <br />
79-
/// protected override MariaDbBuilder Configure(MariaDbBuilder builder)
80-
/// {
81-
/// return builder.WithUsername("root");
82-
/// }
83-
/// }
84-
/// </code>
85-
/// </example>
86-
/// <param name="builder">The container builder to configure.</param>
87-
/// <returns>A configured instance of <typeparamref name="TBuilderEntity" />.</returns>
88-
[Obsolete("This method is obsolete and will be removed. Use the parameterless Configure() method and create the builder explicitly instead.")]
89-
protected virtual TBuilderEntity Configure(TBuilderEntity builder)
90-
{
91-
return builder;
92-
}
68+
protected abstract TBuilderEntity Configure();
9369

9470
/// <inheritdoc cref="IAsyncLifetime.InitializeAsync" />
9571
protected virtual async LifetimeTask InitializeAsync()

src/Testcontainers.Xunit/ContainerTest.cs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,7 @@ namespace Testcontainers.Xunit;
99
/// <typeparam name="TBuilderEntity">The builder entity.</typeparam>
1010
/// <typeparam name="TContainerEntity">The container entity.</typeparam>
1111
[PublicAPI]
12-
public abstract class ContainerTest<TBuilderEntity, TContainerEntity>(ITestOutputHelper testOutputHelper, Func<TBuilderEntity, TBuilderEntity> configure = null)
12+
public abstract class ContainerTest<TBuilderEntity, TContainerEntity>(ITestOutputHelper testOutputHelper)
1313
: ContainerLifetime<TBuilderEntity, TContainerEntity>(new TestOutputLogger(testOutputHelper))
14-
where TBuilderEntity : IContainerBuilder<TBuilderEntity, TContainerEntity, IContainerConfiguration>, new()
15-
where TContainerEntity : IContainer
16-
{
17-
[Obsolete("This method is obsolete and will be removed. Use the parameterless Configure() method and create the builder explicitly instead.")]
18-
protected override TBuilderEntity Configure(TBuilderEntity builder) => configure != null ? configure(builder) : builder;
19-
}
14+
where TBuilderEntity : IContainerBuilder<TBuilderEntity, TContainerEntity, IContainerConfiguration>
15+
where TContainerEntity : IContainer;

src/Testcontainers.Xunit/DbContainerFixture.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace Testcontainers.Xunit;
1010
[PublicAPI]
1111
public abstract class DbContainerFixture<TBuilderEntity, TContainerEntity>(IMessageSink messageSink)
1212
: ContainerFixture<TBuilderEntity, TContainerEntity>(messageSink), IDbContainerTestMethods
13-
where TBuilderEntity : IContainerBuilder<TBuilderEntity, TContainerEntity, IContainerConfiguration>, new()
13+
where TBuilderEntity : IContainerBuilder<TBuilderEntity, TContainerEntity, IContainerConfiguration>
1414
where TContainerEntity : IContainer, IDatabaseContainer
1515
{
1616
private DbContainerTestMethods _testMethods;

src/Testcontainers.Xunit/DbContainerTest.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ namespace Testcontainers.Xunit;
77
/// <typeparam name="TBuilderEntity">The builder entity.</typeparam>
88
/// <typeparam name="TContainerEntity">The container entity.</typeparam>
99
[PublicAPI]
10-
public abstract class DbContainerTest<TBuilderEntity, TContainerEntity>(ITestOutputHelper testOutputHelper, Func<TBuilderEntity, TBuilderEntity> configure = null)
11-
: ContainerTest<TBuilderEntity, TContainerEntity>(testOutputHelper, configure), IDbContainerTestMethods
12-
where TBuilderEntity : IContainerBuilder<TBuilderEntity, TContainerEntity, IContainerConfiguration>, new()
10+
public abstract class DbContainerTest<TBuilderEntity, TContainerEntity>(ITestOutputHelper testOutputHelper)
11+
: ContainerTest<TBuilderEntity, TContainerEntity>(testOutputHelper), IDbContainerTestMethods
12+
where TBuilderEntity : IContainerBuilder<TBuilderEntity, TContainerEntity, IContainerConfiguration>
1313
where TContainerEntity : IContainer, IDatabaseContainer
1414
{
1515
private DbContainerTestMethods _testMethods;

0 commit comments

Comments
 (0)