Esempio n. 1
0
 public Base()
 {
     rawClient = new Mock<IRawByteClient>();
     framedClient = new FramedClient(rawClient.Object);
     serializer = new Mock<IStacksSerializer>();
     messageHandler = new Mock<TestDataHandler>();
 }
Esempio n. 2
0
            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>();
            }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
            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);
                }
            }
Esempio n. 5
0
            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);
            }
Esempio n. 6
0
            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);
            }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
            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);
            }
Esempio n. 9
0
            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 }));
            }
Esempio n. 10
0
            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 }));
            }
Esempio n. 11
0
            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);
                }
            }