public void CloseShouldNotTriggerEvent() { var sockets = SocketTestTools.CreateConnection(); var sut = new ServerClientContext(new BufferSlice(65535)); var service = Substitute.For<INetworkService>(); sut.Assign(sockets.Server, service); bool isDisconnected = false; sut.Disconnected += (sender, args) => isDisconnected = true; sut.Close(); Thread.Sleep(100); isDisconnected.Should() .BeFalse("The receive callback should have triggered a disconnect and also cleaned up"); var socket = (Socket)sut.GetType().GetField("_socket", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(sut); socket.Should().BeNull("Should cleanup from the receive event not have been made."); }