Commit 8c548885 authored by Nick Craver's avatar Nick Craver

Tests: stabilize TestMultipleSubscribersGetMessage

parent c5828bd4
...@@ -148,6 +148,7 @@ public void TestPublishWithSubscribers() ...@@ -148,6 +148,7 @@ public void TestPublishWithSubscribers()
[Fact] [Fact]
public void TestMultipleSubscribersGetMessage() public void TestMultipleSubscribersGetMessage()
{ {
var channel = "channel" + Guid.NewGuid();
using (var muxerA = GetUnsecuredConnection()) using (var muxerA = GetUnsecuredConnection())
using (var muxerB = GetUnsecuredConnection()) using (var muxerB = GetUnsecuredConnection())
using (var conn = GetUnsecuredConnection()) using (var conn = GetUnsecuredConnection())
...@@ -157,19 +158,19 @@ public void TestMultipleSubscribersGetMessage() ...@@ -157,19 +158,19 @@ public void TestMultipleSubscribersGetMessage()
conn.GetDatabase().Ping(); conn.GetDatabase().Ping();
var pub = conn.GetSubscriber(); var pub = conn.GetSubscriber();
int gotA = 0, gotB = 0; int gotA = 0, gotB = 0;
var tA = listenA.SubscribeAsync("channel", (s, msg) => { if (msg == "message") Interlocked.Increment(ref gotA); }); var tA = listenA.SubscribeAsync(channel, (s, msg) => { if (msg == "message") Interlocked.Increment(ref gotA); });
var tB = listenB.SubscribeAsync("channel", (s, msg) => { if (msg == "message") Interlocked.Increment(ref gotB); }); var tB = listenB.SubscribeAsync(channel, (s, msg) => { if (msg == "message") Interlocked.Increment(ref gotB); });
listenA.Wait(tA); listenA.Wait(tA);
listenB.Wait(tB); listenB.Wait(tB);
Assert.Equal(2, pub.Publish("channel", "message")); Assert.Equal(2, pub.Publish(channel, "message"));
AllowReasonableTimeToPublishAndProcess(); AllowReasonableTimeToPublishAndProcess();
Assert.Equal(1, Interlocked.CompareExchange(ref gotA, 0, 0)); Assert.Equal(1, Interlocked.CompareExchange(ref gotA, 0, 0));
Assert.Equal(1, Interlocked.CompareExchange(ref gotB, 0, 0)); Assert.Equal(1, Interlocked.CompareExchange(ref gotB, 0, 0));
// and unsubscibe... // and unsubscibe...
tA = listenA.UnsubscribeAsync("channel"); tA = listenA.UnsubscribeAsync(channel);
listenA.Wait(tA); listenA.Wait(tA);
Assert.Equal(1, pub.Publish("channel", "message")); Assert.Equal(1, pub.Publish(channel, "message"));
AllowReasonableTimeToPublishAndProcess(); AllowReasonableTimeToPublishAndProcess();
Assert.Equal(1, Interlocked.CompareExchange(ref gotA, 0, 0)); Assert.Equal(1, Interlocked.CompareExchange(ref gotA, 0, 0));
Assert.Equal(2, Interlocked.CompareExchange(ref gotB, 0, 0)); Assert.Equal(2, Interlocked.CompareExchange(ref gotB, 0, 0));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment