Skip to content

Commit e4cda25

Browse files
committed
add test for defaulthublifetimemanager
1 parent 57dc534 commit e4cda25

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

src/SignalR/server/SignalR/test/Microsoft.AspNetCore.SignalR.Tests/DefaultHubLifetimeManagerTests.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,4 +255,23 @@ public async Task SendUsersAsyncWillCancelWithToken()
255255
Assert.False(connection1.ConnectionAborted.IsCancellationRequested);
256256
}
257257
}
258+
259+
[Fact]
260+
public async Task ConnectionInMultipleGroups_ReceivesMessageOnlyOnce()
261+
{
262+
using (var client1 = new TestClient())
263+
{
264+
var manager = CreateNewHubLifetimeManager();
265+
var connection1 = HubConnectionContextUtils.Create(client1.Connection);
266+
await manager.OnConnectedAsync(connection1).DefaultTimeout();
267+
await manager.AddToGroupAsync(connection1.ConnectionId, "group1").DefaultTimeout();
268+
await manager.AddToGroupAsync(connection1.ConnectionId, "group2").DefaultTimeout();
269+
await manager.SendGroupsAsync(new List<string> { "group1", "group2" }, "Hello", new object[] { "World" }).DefaultTimeout();
270+
var message = Assert.IsType<InvocationMessage>(client1.TryRead());
271+
Assert.Equal("Hello", message.Target);
272+
Assert.Single(message.Arguments);
273+
Assert.Equal("World", (string)message.Arguments[0]);
274+
Assert.Null(client1.TryRead());
275+
}
276+
}
258277
}

0 commit comments

Comments
 (0)