diff --git a/src/BuildingBlocks/TestBase/TestBase.cs b/src/BuildingBlocks/TestBase/TestBase.cs index 6600f2a..2cdfd4f 100644 --- a/src/BuildingBlocks/TestBase/TestBase.cs +++ b/src/BuildingBlocks/TestBase/TestBase.cs @@ -140,7 +140,6 @@ public class TestFixture : IAsyncLifetime if (ServiceProvider.GetService() is { } harness) { await harness.Start(); - await Task.Delay(1000); } } @@ -728,4 +727,4 @@ public abstract class TestBase : TestFixtureC } public TestFixture Fixture { get; } -} \ No newline at end of file +} diff --git a/src/BuildingBlocks/TestBase/TestContainers.cs b/src/BuildingBlocks/TestBase/TestContainers.cs index 2f102b9..3dca53d 100644 --- a/src/BuildingBlocks/TestBase/TestContainers.cs +++ b/src/BuildingBlocks/TestBase/TestContainers.cs @@ -1,3 +1,5 @@ +using DotNet.Testcontainers.Builders; + namespace BuildingBlocks.TestBase; using Testcontainers.EventStoreDb; @@ -18,15 +20,19 @@ public static class TestContainers { var configuration = ConfigurationHelper.GetConfiguration(); - RabbitMqContainerConfiguration = - configuration.GetOptions(nameof(RabbitMqContainerOptions)); - PostgresContainerConfiguration = - configuration.GetOptions(nameof(PostgresContainerOptions)); - PostgresPersistContainerConfiguration = - configuration.GetOptions(nameof(PostgresPersistContainerOptions)); + RabbitMqContainerConfiguration = configuration.GetOptions( + nameof(RabbitMqContainerOptions) + ); + PostgresContainerConfiguration = configuration.GetOptions( + nameof(PostgresContainerOptions) + ); + PostgresPersistContainerConfiguration = configuration.GetOptions( + nameof(PostgresPersistContainerOptions) + ); MongoContainerConfiguration = configuration.GetOptions(nameof(MongoContainerOptions)); - EventStoreContainerConfiguration = - configuration.GetOptions(nameof(EventStoreContainerOptions)); + EventStoreContainerConfiguration = configuration.GetOptions( + nameof(EventStoreContainerOptions) + ); } public static PostgreSqlContainer PostgresTestContainer() @@ -81,16 +87,25 @@ public static class TestContainers public static RabbitMqContainer RabbitMqTestContainer() { - var baseBuilder = new RabbitMqBuilder() + var builder = new RabbitMqBuilder() .WithUsername(RabbitMqContainerConfiguration.UserName) .WithPassword(RabbitMqContainerConfiguration.Password) - .WithLabel("Key", "Value"); - - var builder = baseBuilder .WithImage(RabbitMqContainerConfiguration.ImageName) .WithName(RabbitMqContainerConfiguration.Name) .WithPortBinding(RabbitMqContainerConfiguration.ApiPort, true) .WithPortBinding(RabbitMqContainerConfiguration.Port, true) + .WithWaitStrategy( + Wait.ForUnixContainer() + .UntilHttpRequestIsSucceeded(request => + request + .ForPort((ushort)RabbitMqContainerConfiguration.ApiPort) + .ForPath("/api/overview") + .WithBasicAuthentication( + RabbitMqContainerConfiguration.UserName, + RabbitMqContainerConfiguration.Password + ) + ) + ) .Build(); return builder; @@ -98,8 +113,7 @@ public static class TestContainers public static EventStoreDbContainer EventStoreTestContainer() { - var baseBuilder = new EventStoreDbBuilder() - .WithLabel("Key", "Value"); + var baseBuilder = new EventStoreDbBuilder().WithLabel("Key", "Value"); var builder = baseBuilder .WithImage(EventStoreContainerConfiguration.ImageName) @@ -152,4 +166,4 @@ public static class TestContainers public int Port { get; set; } = 2113; public string ImageName { get; set; } = "eventstore/eventstore:latest"; } -} \ No newline at end of file +}