public void SetUp() { ep = new IPEndPoint(IPAddress.Loopback, Config.Port); wh = new ManualResetEventSlim(); schedulerDelegate = new SchedulerDelegate(); scheduler = new DefaultKayakScheduler(schedulerDelegate); schedulerDelegate.OnStoppedAction = () => { stopListening.Dispose(); stopListening = null; wh.Set(); }; schedulerDelegate.OnExceptionAction = e => { schedulerError = e; Debug.WriteLine("Error on scheduler"); e.DebugStackTrace(); scheduler.Stop(); }; scheduler.Post(() => { stopListening = server.Listen(ep); schedulerStartedAction(); }); serverDelegate = new ServerDelegate(); server = new DefaultKayakServer(serverDelegate, scheduler); clientSocketDelegate = new SocketDelegate(); client = new DefaultKayakSocket(clientSocketDelegate, scheduler); }
public void Server_writes_asynchronously_client_buffers_synchronously() { serverDelegate.OnConnectionAction = (server, socket) => { serverSocketDelegate = new SocketDelegate(); serverSocketDelegate.OnCloseAction = () => { Debug.WriteLine("will dispose"); socket.Dispose(); Debug.WriteLine("did dispose"); scheduler.Stop(); }; WriteDataSync(socket); return(serverSocketDelegate); }; schedulerStartedAction = () => { clientSocketDelegate.OnEndAction = () => { client.End(); }; client.Connect(ep); }; RunScheduler(); AssertConnectionAndCleanShutdown(); Assert.That(clientSocketDelegate.Buffer.GetString(), Is.EqualTo("hailey is a stinky punky butt nugget dot com")); }
public void Client_writes_synchronously_server_buffers_synchronously() { serverDelegate.OnConnectionAction = (server, socket) => { Debug.WriteLine("server OnConnection"); serverSocketDelegate = new SocketDelegate(); serverSocketDelegate.OnEndAction = () => { Debug.WriteLine("serverSocket OnEnd"); socket.End(); }; serverSocketDelegate.OnCloseAction = () => { Debug.WriteLine("serverSocket OnClose"); socket.Dispose(); }; return(serverSocketDelegate); }; schedulerStartedAction = () => { clientSocketDelegate.OnConnectedAction = () => { Debug.WriteLine("client OnConnected"); try { WriteDataSync(client); } catch (Exception e) { Console.Error.WriteStackTrace(e); } }; clientSocketDelegate.OnCloseAction = () => { Debug.WriteLine("client OnClose"); scheduler.Stop(); }; client.Connect(ep); }; RunScheduler(); AssertConnectionAndCleanShutdown(); Assert.That( serverSocketDelegate.Buffer.GetString(), Is.EqualTo("hailey is a stinky punky butt nugget dot com")); }
public void Client_writes_asynchronously_server_buffers_synchronously() { serverDelegate.OnConnectionAction = (server, socket) => { serverSocketDelegate = new SocketDelegate(); serverSocketDelegate.OnEndAction = () => { socket.End(); }; serverSocketDelegate.OnCloseAction = () => { socket.Dispose(); }; return serverSocketDelegate; }; schedulerStartedAction = () => { clientSocketDelegate.OnConnectedAction = () => { try { WriteDataAsync(client); } catch (Exception e) { Console.Error.WriteStackTrace(e); } }; clientSocketDelegate.OnCloseAction = () => { scheduler.Stop(); }; client.Connect(ep); }; RunScheduler(); AssertConnectionAndCleanShutdown(); Assert.That(serverSocketDelegate.Buffer.GetString(), Is.EqualTo("hailey is a stinky punky butt nugget dot com")); }
public void Simple_handshake_client_closes_connection() { serverDelegate.OnConnectionAction = (server, socket) => { Debug.WriteLine("server OnConnection"); serverSocketDelegate = new SocketDelegate(); serverSocketDelegate.OnEndAction = () => { Debug.WriteLine("serverSocket OnEnd"); socket.End(); }; serverSocketDelegate.OnCloseAction = () => { Debug.WriteLine("serverSocket OnClose"); socket.Dispose(); }; return(serverSocketDelegate); }; schedulerStartedAction = () => { clientSocketDelegate.OnConnectedAction = () => { Debug.WriteLine("client End"); client.End(); }; clientSocketDelegate.OnCloseAction = () => { Debug.WriteLine("client OnClose"); scheduler.Stop(); }; client.Connect(ep); }; RunScheduler(); AssertConnectionAndCleanShutdown(); }
public void Simple_handshake_client_closes_connection() { serverDelegate.OnConnectionAction = (server, socket) => { Debug.WriteLine("server OnConnection"); serverSocketDelegate = new SocketDelegate(); serverSocketDelegate.OnEndAction = () => { Debug.WriteLine("serverSocket OnEnd"); socket.End(); }; serverSocketDelegate.OnCloseAction = () => { Debug.WriteLine("serverSocket OnClose"); socket.Dispose(); }; return serverSocketDelegate; }; schedulerStartedAction = () => { clientSocketDelegate.OnConnectedAction = () => { Debug.WriteLine("client End"); client.End(); }; clientSocketDelegate.OnCloseAction = () => { Debug.WriteLine("client OnClose"); scheduler.Stop(); }; client.Connect(ep); }; RunScheduler(); AssertConnectionAndCleanShutdown(); }
public void Server_writes_synchronously_client_buffers_synchronously() { serverDelegate.OnConnectionAction = (server, socket) => { serverSocketDelegate = new SocketDelegate(); serverSocketDelegate.OnCloseAction = () => { socket.Dispose(); scheduler.Stop(); }; WriteDataSync(socket); return serverSocketDelegate; }; schedulerStartedAction = () => { clientSocketDelegate.OnEndAction = () => { client.End(); }; client.Connect(ep); }; RunScheduler(); AssertConnectionAndCleanShutdown(); Assert.That(clientSocketDelegate.Buffer.GetString(), Is.EqualTo("hailey is a stinky punky butt nugget dot com")); }
public void SetUp() { ep = new IPEndPoint(IPAddress.Loopback, Config.Port); wh = new ManualResetEventSlim(); IDisposable d = null; var schedulerDelegate = new SchedulerDelegate(); schedulerDelegate.OnStoppedAction = () => { d.Dispose(); wh.Set(); }; scheduler = new KayakScheduler(schedulerDelegate); scheduler.Post(() => { d = server.Listen(ep); schedulerStartedAction(); }); var serverDelegate = new ServerDelegate(); server = new KayakServer(serverDelegate, scheduler); clientSocketDelegate = new SocketDelegate(); client = new KayakSocket(clientSocketDelegate, scheduler); }
public void Client_writes_synchronously_server_buffers_synchronously() { serverDelegate.OnConnectionAction = (server, socket) => { Debug.WriteLine("server OnConnection"); serverSocketDelegate = new SocketDelegate(); serverSocketDelegate.OnEndAction = () => { Debug.WriteLine("serverSocket OnEnd"); socket.End(); }; serverSocketDelegate.OnCloseAction = () => { Debug.WriteLine("serverSocket OnClose"); socket.Dispose(); }; return serverSocketDelegate; }; schedulerStartedAction = () => { clientSocketDelegate.OnConnectedAction = () => { Debug.WriteLine("client OnConnected"); try { WriteDataSync(client); } catch (Exception e) { e.DebugStacktrace(); } }; clientSocketDelegate.OnCloseAction = () => { Debug.WriteLine("client OnClose"); scheduler.Stop(); }; client.Connect(ep); }; RunScheduler(); AssertConnectionAndCleanShutdown(); Assert.That( serverSocketDelegate.Buffer.ToString(), Is.EqualTo("hailey is a stinky punky butt nugget dot com")); }