public void TestDisconnect() { var ev = new AutoResetEvent(false); var succeeded = false; var communicationLayer = new SocketConnection(); communicationLayer.ConnectionSucceeded += () => { succeeded = true; ev.Set(); }; communicationLayer.ErrorOccurred += (msg) => { succeeded = false; ev.Set(); }; communicationLayer.StartConnect("localhost", 80); ev.WaitOne(5000); Assert.IsTrue(succeeded); var disconnectEv = new AutoResetEvent(false); communicationLayer.ServerDisconnected += () => disconnectEv.Set(); communicationLayer.StartDisconnect(); disconnectEv.WaitOne(5000); Assert.IsFalse(communicationLayer.Connected); }
public void TestConnectFailed() { var ev = new AutoResetEvent(false); var failed = false; var communicationLayer = new SocketConnection(); communicationLayer.ConnectionSucceeded += () => ev.Set(); communicationLayer.ErrorOccurred += (msg) => { failed = true; ev.Set(); }; communicationLayer.StartConnect("localhost", 99); ev.WaitOne(5000); Assert.IsTrue(failed); }
public void TestEcho() { var ev = new AutoResetEvent(false); var communicationLayer = new SocketConnection(); communicationLayer.ConnectionSucceeded += () => { ev.Set(); }; communicationLayer.StartConnect("localhost", 7); ev.WaitOne(5000); var received = new List<byte>(); using (var receivedEvent = new AutoResetEvent(false)) { communicationLayer.Send(new byte[] { 5, 7, 9 }); communicationLayer.DataReceived += data => { received.AddRange(data); if (received.Count >= 3) receivedEvent.Set(); }; receivedEvent.WaitOne(5000); } using (var disconnectEv = new AutoResetEvent(false)) { communicationLayer.ServerDisconnected += () => disconnectEv.Set(); communicationLayer.StartDisconnect(); disconnectEv.WaitOne(5000); } Assert.IsFalse(communicationLayer.Connected); }