Esempio n. 1
0
        public void TestRpc()
        {
            // create test server
            int port         = 6557;
            var serverBundle = TestUtil.CreateTestServer <ServerEventHandler>(port, true);
            var server       = serverBundle.Item1;
            var handler      = serverBundle.Item2;

            handler.Response = "TEST MESSAGE RECIEVED";

            // create client
            var client = TestUtil.CreateClient <ClientEventHandler>(port, true).Item1;

            Assert.IsTrue(client.Connected);

            // test rpc
            var msg    = "TEST MESSAGE";
            var rspRpc = client.Rpc(TestUtil.ToByte(msg), 2000);

            Assert.IsNotNull(rspRpc);
            var rspMsg = TestUtil.ToString(rspRpc);

            Assert.AreEqual(msg + " RECIEVED", rspMsg);

            // server stop
            server.Stop();
            TestUtil.Wait();
            Assert.IsFalse(client.Connected);
        }
Esempio n. 2
0
        public void TestSendToAllClients()
        {
            /// create server
            int port          = 5558;
            var bundle        = TestUtil.CreateTestServer <ServerEventHandler>(port, true);
            var server        = bundle.Item1;
            var eventHandler  = bundle.Item2;
            var dataProcessor = TestUtil.CreateSimpleDataProcessor();

            // connect clients
            int count   = 2;
            var clients = Enumerable.Range(0, count).Select(i => TestUtil.CreateTestNativeClient(port)).ToList();

            TestUtil.Wait();
            Assert.AreEqual(count, server.Clients.Count());

            // send message from server to all clients
            string message = "TEST MESSAGE";
            var    sent    = server.SendToAll(TestUtil.ToByte(message));

            Assert.AreEqual(count, sent);

            // read message from clients
            var recieved = clients.Select(c => {
                var buffer = new byte[200];
                var cnt    = c.GetStream().Read(buffer, 0, 200);
                Assert.AreNotEqual(0, cnt);
                var rcnt = dataProcessor.ProcessReceivedRawData(buffer, cnt);
                Assert.AreEqual(1, rcnt.Count());
                return(TestUtil.ToString(rcnt.First()));
            });

            // messages must be the same
            recieved.ToList().ForEach(msg => Assert.AreEqual(message, msg));
        }
Esempio n. 3
0
 public void HandleSentData(DataContainer data)
 {
     Interlocked.Increment(ref Count);
     Sent = TestUtil.ToString(data.Payload);
 }
Esempio n. 4
0
 public byte[] HandleReceivedData(DataContainer data, bool rpcResponse = false)
 {
     Interlocked.Increment(ref Count);
     Recieved = TestUtil.ToString(data.Payload);
     return(null);
 }