public void TestClientEventsAreFired() { // create test server int port = 6556; var server = TestUtil.CreateTestServer <ServerEventHandler>(port, true).Item1; // create client var eventHandler = new ClientEventHandler(); var bundle = TestUtil.CreateClient <ClientEventHandler>(port, true, false); var client = bundle.Item1; var handler = bundle.Item2; TestUtil.Wait(); Assert.IsTrue(client.Connected); Assert.AreEqual(1, handler.Count); // server stop (client will disconnect) server.Stop(); TestUtil.Wait(); Assert.AreEqual(2, handler.Count); // client connect again Assert.IsTrue(server.Start()); client.Connect(); TestUtil.Wait(); Assert.AreEqual(3, handler.Count); // test recieve message string msg = "TEST MESSAGE"; Assert.AreEqual(1, server.SendToAll(TestUtil.ToByte(msg))); TestUtil.Wait(); Assert.AreEqual(4, handler.Count); Assert.AreEqual(msg, handler.Recieved); // test send message client.Send(TestUtil.ToByte(msg)); TestUtil.Wait(); Assert.AreEqual(5, handler.Count); Assert.AreEqual(msg, handler.Sent); // server stop server.Stop(); TestUtil.Wait(); Assert.IsFalse(client.Connected); Assert.AreEqual(6, handler.Count); // failed connect client.Connect(); TestUtil.Wait(); Assert.AreEqual(7, handler.Count); }