public void TestTransport(IAcceptor acc, IConnector conn, string address, string port) { acceptor = acc; connector = conn; acceptor.Start(); acceptor.NewTransportAccepted += SetupServer; acceptorThread = new Thread(RunAcceptor); acceptorThread.Name = "Acceptor"; acceptorThread.IsBackground = true; acceptorThread.Start(); client = connector.Connect(address, port, new Dictionary<string, string>()); Assert.IsNotNull(client); client.PacketReceived += ClientReceivedPacket; for (int i = 0; i < 10; i++) { sourceData[0] = (byte)i; Debug("client: sending packet#" + i + ": " + ByteUtils.DumpBytes(sourceData, 0, sourceData.Length)); client.SendPacket(new TransportPacket(sourceData)); if (failure.Length != 0) { Assert.Fail(failure); } Thread.Sleep(500); client.Update(); } Assert.AreEqual(10, serverPacketCount); Assert.AreEqual(10, clientPacketCount); try { client.SendPacket(new TransportPacket(new byte[client.MaximumPacketSize * 2])); Assert.Fail("Transport allowed sending packets exceeding its capacity"); } catch (ContractViolation) { /* expected */ } }