public void ConnectAndDisposeOneClientShouldBeTrackedByServer() { var started = _server.Start(); Assert.True(started, "Could not start server"); Assert.Empty(_server.Clients); var reportConnected = false; _server.ClientConnected += _ => { reportConnected = true; }; var reportDisconnected = false; _server.ClientDisconnected += _ => { reportDisconnected = true; }; _client = new SocketCommandClient("localhost", _testServerPort, _ => { }); var connected = _client.Connect(); Assert.True(connected, "LastResult: " + _client.LastResult); Thread.Sleep(100); Assert.True(reportConnected); Assert.Single(_server.Clients); _client.Dispose(); Thread.Sleep(100); Assert.True(reportDisconnected); Assert.Empty(_server.Clients); }
public void Dispose() { _cancel?.Cancel(); if (_task != null) { if (_task.Wait(1000)) { _task?.Dispose(); } _task = null; } _client?.Dispose(); _client = null; _server.Terminate(); }