From 5b7805102148fb3491838b8ce4ab5bd30a556aae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ce=CC=81dric=20Luthi?= Date: Fri, 29 Nov 2024 00:45:35 +0100 Subject: [PATCH] fix: Postpone exception in DbContainerFixture to match the behaviour of ContainerFixture --- src/Testcontainers.Xunit/DbContainerFixture.cs | 2 +- src/Testcontainers.Xunit/DbContainerTest.cs | 2 +- src/Testcontainers.Xunit/DbContainerTestMethods.cs | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Testcontainers.Xunit/DbContainerFixture.cs b/src/Testcontainers.Xunit/DbContainerFixture.cs index c8e6ffbda..f533f06ed 100644 --- a/src/Testcontainers.Xunit/DbContainerFixture.cs +++ b/src/Testcontainers.Xunit/DbContainerFixture.cs @@ -21,7 +21,7 @@ protected override async LifetimeTask InitializeAsync() await base.InitializeAsync() .ConfigureAwait(false); - _testMethods = new DbContainerTestMethods(DbProviderFactory, ConnectionString); + _testMethods = new DbContainerTestMethods(DbProviderFactory, new Lazy(() => ConnectionString)); } /// diff --git a/src/Testcontainers.Xunit/DbContainerTest.cs b/src/Testcontainers.Xunit/DbContainerTest.cs index aed622ebe..ae5b29bfc 100644 --- a/src/Testcontainers.Xunit/DbContainerTest.cs +++ b/src/Testcontainers.Xunit/DbContainerTest.cs @@ -20,7 +20,7 @@ protected override async LifetimeTask InitializeAsync() await base.InitializeAsync() .ConfigureAwait(false); - _testMethods = new DbContainerTestMethods(DbProviderFactory, ConnectionString); + _testMethods = new DbContainerTestMethods(DbProviderFactory, new Lazy(() => ConnectionString)); } /// diff --git a/src/Testcontainers.Xunit/DbContainerTestMethods.cs b/src/Testcontainers.Xunit/DbContainerTestMethods.cs index adcfa2e24..ec798553b 100644 --- a/src/Testcontainers.Xunit/DbContainerTestMethods.cs +++ b/src/Testcontainers.Xunit/DbContainerTestMethods.cs @@ -1,9 +1,9 @@ namespace Testcontainers.Xunit; -internal sealed class DbContainerTestMethods(DbProviderFactory dbProviderFactory, string connectionString) : IDbContainerTestMethods, IAsyncDisposable +internal sealed class DbContainerTestMethods(DbProviderFactory dbProviderFactory, Lazy connectionString) : IDbContainerTestMethods, IAsyncDisposable { private readonly DbProviderFactory _dbProviderFactory = dbProviderFactory ?? throw new ArgumentNullException(nameof(dbProviderFactory)); - private readonly string _connectionString = connectionString ?? throw new ArgumentNullException(nameof(connectionString)); + private readonly Lazy _connectionString = connectionString ?? throw new ArgumentNullException(nameof(connectionString)); #if NET8_0_OR_GREATER [CanBeNull] @@ -12,7 +12,7 @@ private DbDataSource DbDataSource { get { - _dbDataSource ??= _dbProviderFactory.CreateDataSource(_connectionString); + _dbDataSource ??= _dbProviderFactory.CreateDataSource(_connectionString.Value); return _dbDataSource; } } @@ -32,7 +32,7 @@ private DbDataSource DbDataSource public DbConnection CreateConnection() { var connection = _dbProviderFactory.CreateConnection() ?? throw new InvalidOperationException($"DbProviderFactory.CreateConnection() returned null for {_dbProviderFactory}"); - connection.ConnectionString = _connectionString; + connection.ConnectionString = _connectionString.Value; return connection; }