diff --git a/src/IntegrationTests/ConnectionSpec.cs b/src/IntegrationTests/ConnectionSpec.cs index 0fd76d6a..8fdefbdd 100644 --- a/src/IntegrationTests/ConnectionSpec.cs +++ b/src/IntegrationTests/ConnectionSpec.cs @@ -88,12 +88,15 @@ public async Task when_clients_connect_and_disconnect_then_server_raises_events( public async Task when_connect_clients_and_one_client_drops_connection_then_other_client_survives() { var fooClient = await GetClientAsync(); + var fooClientId = GetClientId(); var barClient = await GetClientAsync(); + var barClientId = GetClientId(); - await fooClient.ConnectAsync(new MqttClientCredentials(GetClientId())); - await barClient.ConnectAsync(new MqttClientCredentials(GetClientId())); + await fooClient.ConnectAsync(new MqttClientCredentials(fooClientId)); + await barClient.ConnectAsync(new MqttClientCredentials(barClientId)); - var initialConnectedClients = server.ActiveClients.Count(); + var clientIds = new List { fooClientId, barClientId }; + var initialConnectedClients = server.ActiveClients.Where(c => clientIds.Contains(c)).Count(); var exceptionThrown = false; try @@ -110,7 +113,7 @@ public async Task when_connect_clients_and_one_client_drops_connection_then_othe while (!serverSignal.IsSet) { - if (server.ActiveConnections == 1 && server.ActiveClients.Count() == 1) + if (!server.ActiveClients.Any(c => c == fooClientId)) { serverSignal.Set(); } @@ -118,10 +121,11 @@ public async Task when_connect_clients_and_one_client_drops_connection_then_othe serverSignal.Wait(); + var finalConnectedClients = server.ActiveClients.Where(c => clientIds.Contains(c)).Count(); + Assert.Equal(2, initialConnectedClients); Assert.True(exceptionThrown); - Assert.Equal(1, server.ActiveConnections); - Assert.Equal(1, server.ActiveClients.Count()); + Assert.Equal(1, finalConnectedClients); fooClient.Dispose(); barClient.Dispose(); @@ -167,8 +171,7 @@ public async Task when_connecting_twice_with_same_client_with_disconnecting_then await client.DisconnectAsync(); await client.ConnectAsync(new MqttClientCredentials(clientId)); - Assert.Equal(1, server.ActiveConnections); - Assert.Equal(1, server.ActiveClients.Count()); + Assert.Equal(1, server.ActiveClients.Count(c => c == clientId)); client.Dispose(); }