public Base() { rawClient = new Mock<IRawByteClient>(); framedClient = new FramedClient(rawClient.Object); serializer = new Mock<IStacksSerializer>(); messageHandler = new Mock<TestDataHandler>(); }
public Base() { rawClientReceived = new Subject<ArraySegment<byte>>(); rawClient = new Mock<IRawByteClient>(); rawClient.Setup(r => r.Received).Returns(rawClientReceived); framedClient = new FramedClient(rawClient.Object); serializer = new Mock<IStacksSerializer>(); messageHandler = new Mock<TestDataHandler>(); }
static void Main(string[] args) { ServerHelpers.CreateServerAndConnectedClient(out s, out c1, out c2); c1.Disconnected.Subscribe(exn => { Console.WriteLine("C1 d/c " + exn); }); c2.Disconnected.Subscribe(exn => { Console.WriteLine("C2 d/c " + exn); }); fc1 = new FramedClient(c1); fc2 = new FramedClient(c2); Measure(8192, 8192); Console.ReadLine(); Measure(8192, 8192 * 16); Console.ReadLine(); }
protected void ReceiveBytesSegmentsAndAssertPackets(Action<int, ArraySegment<byte>> recvAsserts, IEnumerable<ArraySegment<byte>> recvBytes) { int idx = 0; var c = new FramedClient(rawClient.Object); c.Received += bs => { recvAsserts(idx++, bs); }; foreach (var recv in recvBytes) { rawClient.Raise(r => r.Received += null, recv); } }
protected void ReceiveBytesAndAssertPacket(Action<ArraySegment<byte>> recvAsserts, ArraySegment<byte> recvBytes) { bool called = false; var c = new FramedClient(rawClient.Object); c.Received += bs => { called = true; recvAsserts(bs); }; rawClient.Raise(r => r.Received += null, recvBytes); Assert.True(called); }
protected void ReceiveBytesAndAssertPacket(Action<ArraySegment<byte>> recvAsserts, ArraySegment<byte> recvBytes) { bool called = false; var bytesRecv = new Subject<ArraySegment<byte>>(); rawClient.Setup(s => s.Received).Returns(bytesRecv); var c = new FramedClient(rawClient.Object); c.Received.Subscribe(bs => { called = true; recvAsserts(bs); }); bytesRecv.OnNext(recvBytes); Assert.True(called); }
public async void Client_should_be_disconnected_after_over_30_seconds_after_last_ping() { var disconnected = new ManualResetEventSlim(); server = ActorServerProxy.Create<TestActor>("tcp://*:0"); int port = server.BindEndPoint.Port; client = new FramedClient(new SocketClient()); await client.Connect("tcp://localhost:" + port); client.Received.Subscribe(x => Console.WriteLine("Received " + x.Count + " bytes. " + "Header: " + BitConverter.ToInt32(x.Array, x.Offset) + " " + "Id: " + BitConverter.ToInt32(x.Array, x.Offset + 4))); client.Disconnected.Subscribe(_ => disconnected.Set()); SendHandshake(); SendPing(); Thread.Sleep(40000); Assert.False(disconnected.IsSet); disconnected.Wait(40000); Assert.True(disconnected.IsSet); }
public void Sending_preformatted_packet_should_not_add_additional_header() { var c = new FramedClient(rawClient.Object); var data = new byte[] { 1, 2, 3, 4, 5, 6, 7 }; var buffer = c.PreparePacketBuffer(7); Buffer.BlockCopy(data, 0, buffer.Packet.Array, buffer.Packet.Offset, data.Length); c.SendPacket(buffer); rawClient.Verify(r => r.Send(new byte[] { 11, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7 })); Assert.Equal(11, buffer.Packet.Array.Length); Assert.Equal(7, buffer.Packet.Count); }
public void Sending_packet_with_byte_array_should_call_raw_client_with_header_appended() { var c = new FramedClient(rawClient.Object); c.SendPacket(new byte[] { 1, 2, 3 }); rawClient.Verify(r => r.Send(new byte[] { 7, 0, 0, 0, 1, 2, 3 })); }
public void Sending_packet_with_array_segment_should_call_raw_client_with_header_appended() { var c = new FramedClient(rawClient.Object); c.SendPacket(new ArraySegment<byte>(new byte[] { 0, 0, 5, 0, 0, 0, 54, 1, 2, 3 }, 6, 1)); rawClient.Verify(r => r.Send(new byte[] { 5, 0, 0, 0, 54 })); }
protected void ReceiveBytesSegmentsAndAssertPackets(Action<int, ArraySegment<byte>> recvAsserts, IEnumerable<ArraySegment<byte>> recvBytes) { int idx = 0; var bytesRecv = new Subject<ArraySegment<byte>>(); rawClient.Setup(s => s.Received).Returns(bytesRecv); var c = new FramedClient(rawClient.Object); c.Received.Subscribe(bs => { recvAsserts(idx++, bs); }); foreach (var recv in recvBytes) { bytesRecv.OnNext(recv); } }