From 638e2d30fb349872f83b148f9116f3da0de91dfe Mon Sep 17 00:00:00 2001 From: Ziya Suzen Date: Fri, 11 Aug 2023 16:02:11 +0100 Subject: [PATCH] Connect auth test subscriber sync fix (#110) --- .../NatsConnectionTest.Auth.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/tests/NATS.Client.Core.Tests/NatsConnectionTest.Auth.cs b/tests/NATS.Client.Core.Tests/NatsConnectionTest.Auth.cs index 74cce67aa..a16a51741 100644 --- a/tests/NATS.Client.Core.Tests/NatsConnectionTest.Auth.cs +++ b/tests/NATS.Client.Core.Tests/NatsConnectionTest.Auth.cs @@ -116,9 +116,11 @@ public async Task UserCredentialAuthTest(string name, string serverConfig, NatsO var signalComplete1 = new WaitSignal(); var signalComplete2 = new WaitSignal(); + var syncCount = 0; var natsSub = await subConnection.SubscribeAsync(subject); var register = natsSub.Register(x => { + Interlocked.Increment(ref syncCount); _output.WriteLine($"Received: {x}"); if (x.Data == 1) signalComplete1.Pulse(); @@ -126,7 +128,11 @@ public async Task UserCredentialAuthTest(string name, string serverConfig, NatsO signalComplete2.Pulse(); }); - await subConnection.PingAsync(); // wait for subscribe complete + var syncCount1 = Volatile.Read(ref syncCount); + await Retry.Until( + "subscribed", + () => syncCount1 != Volatile.Read(ref syncCount), + async () => await pubConnection.PublishAsync(subject, 0)); _output.WriteLine("AUTHENTICATED CONNECTION"); await pubConnection.PublishAsync(subject, 1); @@ -146,6 +152,13 @@ public async Task UserCredentialAuthTest(string name, string serverConfig, NatsO await pubConnection.ConnectAsync(); // wait open again _output.WriteLine("AUTHENTICATED RE-CONNECTION"); + + var syncCount2 = Volatile.Read(ref syncCount); + await Retry.Until( + "re-subscribed", + () => syncCount2 != Volatile.Read(ref syncCount), + async () => await pubConnection.PublishAsync(subject, 0)); + await pubConnection.PublishAsync(subject, 2); await signalComplete2;