public async Task ConnectionTest(int clientCount) { using (var server = new TestNode()) { server.ListenAsync(); List<TestNode> clients = new List<TestNode>(clientCount); for (int i = 0; i < clientCount; i++) { var client = new TestNode(); await client.ConnectAsync(); clients.Add(client); var result = await server.ReadState(); Assert.Equal(result, TestNodeState.Connected); Assert.True(server.IsStatesQueueEmpty()); } foreach (var client in clients) { client.Dispose(); } } }
public async Task TestDroppedConnectionWithHeartbeatAndNoIncomingData() { using (var server = new TestNode()) { server.ListenAsync(); var client = new TestNode(); await client.ConnectAsync(); var result = await server.ReadState(); Assert.Equal(result, TestNodeState.Connected); Assert.True(server.IsStatesQueueEmpty()); // Dispose, not a clean disconnect client.Dispose(); result = await server.ReadState(); Assert.Equal(result, TestNodeState.Disconnected); Assert.True(server.IsStatesQueueEmpty()); } }
public async Task TestDroppedConnectionWithIncomingData() { using (var server = new TestNode()) { server.ListenAsync(); var client = new TestNode(); await client.ConnectAsync(); var result = await server.ReadState(); Assert.Equal(result, TestNodeState.Connected); Assert.True(server.IsStatesQueueEmpty()); // Dispose, not a clean disconnect client.Dispose(); var payload = GenerateRandomBytes(100); server.SendDataAsync(payload); result = await server.ReadState(); Assert.Equal(result, TestNodeState.Disconnected); Assert.True(server.IsStatesQueueEmpty()); } }