diff --git a/src/Testcontainers.Pulsar/PulsarBuilder.cs b/src/Testcontainers.Pulsar/PulsarBuilder.cs index 173690c6f..23218b1ea 100644 --- a/src/Testcontainers.Pulsar/PulsarBuilder.cs +++ b/src/Testcontainers.Pulsar/PulsarBuilder.cs @@ -68,13 +68,20 @@ public override PulsarContainer Build() { Validate(); - var waitStrategy = Wait.ForUnixContainer().AddCustomWaitStrategy(new WaitUntil(DockerResourceConfiguration.AuthenticationEnabled.GetValueOrDefault())); + var waitStrategy = Wait.ForUnixContainer(); + + if (DockerResourceConfiguration.AuthenticationEnabled.GetValueOrDefault()) + { + waitStrategy = waitStrategy.UntilFileExists(SecretKeyFilePath, FileSystem.Container); + } if (DockerResourceConfiguration.FunctionsWorkerEnabled.GetValueOrDefault()) { waitStrategy = waitStrategy.UntilMessageIsLogged("Function worker service started"); } + waitStrategy = waitStrategy.AddCustomWaitStrategy(new WaitUntil(DockerResourceConfiguration.AuthenticationEnabled.GetValueOrDefault())); + var pulsarBuilder = DockerResourceConfiguration.WaitStrategies.Count() > 1 ? this : WithWaitStrategy(waitStrategy); return new PulsarContainer(pulsarBuilder.DockerResourceConfiguration); } diff --git a/tests/Testcontainers.Pulsar.Tests/PulsarContainerTest.cs b/tests/Testcontainers.Pulsar.Tests/PulsarContainerTest.cs index 21af79639..bb0405417 100644 --- a/tests/Testcontainers.Pulsar.Tests/PulsarContainerTest.cs +++ b/tests/Testcontainers.Pulsar.Tests/PulsarContainerTest.cs @@ -2,6 +2,8 @@ namespace Testcontainers.Pulsar; public abstract class PulsarContainerTest : IAsyncLifetime { + private static readonly IReadOnlyDictionary MemorySettings = new Dictionary { { "PULSAR_MEM", "-Xms256m -Xmx512m" } }; + private readonly PulsarContainer _pulsarContainer; private readonly bool _authenticationEnabled; @@ -69,7 +71,9 @@ public async Task ConsumerReceivesSendMessage() public sealed class PulsarDefaultConfiguration : PulsarContainerTest { public PulsarDefaultConfiguration() - : base(new PulsarBuilder().Build(), false) + : base(new PulsarBuilder() + .WithEnvironment(MemorySettings) + .Build(), false) { } } @@ -79,7 +83,10 @@ public PulsarDefaultConfiguration() public sealed class PulsarAuthConfiguration : PulsarContainerTest { public PulsarAuthConfiguration() - : base(new PulsarBuilder().WithAuthentication().Build(), true) + : base(new PulsarBuilder() + .WithAuthentication() + .WithEnvironment(MemorySettings) + .Build(), true) { } } @@ -88,7 +95,10 @@ public PulsarAuthConfiguration() public sealed class PulsarV4Configuration : PulsarContainerTest { public PulsarV4Configuration() - : base(new PulsarBuilder().WithImage("apachepulsar/pulsar:4.0.2").Build(), false) + : base(new PulsarBuilder() + .WithImage("apachepulsar/pulsar:4.0.2") + .WithEnvironment(MemorySettings) + .Build(), false) { } } @@ -97,7 +107,11 @@ public PulsarV4Configuration() public sealed class PulsarV4AuthConfiguration : PulsarContainerTest { public PulsarV4AuthConfiguration() - : base(new PulsarBuilder().WithImage("apachepulsar/pulsar:4.0.2").WithAuthentication().Build(), true) + : base(new PulsarBuilder() + .WithImage("apachepulsar/pulsar:4.0.2") + .WithAuthentication() + .WithEnvironment(MemorySettings) + .Build(), true) { } } diff --git a/tests/Testcontainers.Pulsar.Tests/Usings.cs b/tests/Testcontainers.Pulsar.Tests/Usings.cs index 4eb245799..ad94dd31c 100644 --- a/tests/Testcontainers.Pulsar.Tests/Usings.cs +++ b/tests/Testcontainers.Pulsar.Tests/Usings.cs @@ -1,4 +1,5 @@ global using System; +global using System.Collections.Generic; global using System.Text; global using System.Threading; global using System.Threading.Tasks;