public async Task StillSubscribedToUserAfterOneOfMultipleConnectionsAssociatedWithUserDisconnects()
        {
            using (var client1 = new TestClient())
                using (var client2 = new TestClient())
                    using (var client3 = new TestClient())
                    {
                        MassTransitHubLifetimeManager <MyHub> manager = BackplaneHarness.HubLifetimeManager;

                        var connection1 = HubConnectionContextUtils.Create(client1.Connection, userIdentifier: "userA");
                        var connection2 = HubConnectionContextUtils.Create(client2.Connection, userIdentifier: "userA");
                        var connection3 = HubConnectionContextUtils.Create(client3.Connection, userIdentifier: "userB");

                        await manager.OnConnectedAsync(connection1).OrTimeout(Harness.TestTimeout);

                        await manager.OnConnectedAsync(connection2).OrTimeout(Harness.TestTimeout);

                        await manager.OnConnectedAsync(connection3).OrTimeout(Harness.TestTimeout);

                        await manager.SendUserAsync("userA", "Hello", new object[] { "World" }).OrTimeout(Harness.TestTimeout);
                        await AssertMessageAsync(client1);
                        await AssertMessageAsync(client2);

                        // Disconnect one connection for the user
                        await manager.OnDisconnectedAsync(connection1).OrTimeout(Harness.TestTimeout);

                        await manager.SendUserAsync("userA", "Hello", new object[] { "World" }).OrTimeout(Harness.TestTimeout);
                        await AssertMessageAsync(client2);
                    }
        }
        public async Task InvokeUserSendsToAllConnectionsForUser()
        {
            using (var client1 = new TestClient())
                using (var client2 = new TestClient())
                    using (var client3 = new TestClient())
                    {
                        MassTransitHubLifetimeManager <MyHub> manager = BackplaneHarness.HubLifetimeManager;

                        var connection1 = HubConnectionContextUtils.Create(client1.Connection, userIdentifier: "userA");
                        var connection2 = HubConnectionContextUtils.Create(client2.Connection, userIdentifier: "userA");
                        var connection3 = HubConnectionContextUtils.Create(client3.Connection, userIdentifier: "userB");

                        await manager.OnConnectedAsync(connection1).OrTimeout(Harness.TestTimeout);

                        await manager.OnConnectedAsync(connection2).OrTimeout(Harness.TestTimeout);

                        await manager.OnConnectedAsync(connection3).OrTimeout(Harness.TestTimeout);

                        await manager.SendUserAsync("userA", "Hello", new object[] { "World" }).OrTimeout(Harness.TestTimeout);
                        await AssertMessageAsync(client1);
                        await AssertMessageAsync(client2);
                    }
        }