示例#1
0
        public void Ssl_Client_ParallelObjects_Server()
        {
            Counter counter = new Counter();

            ManualResetEvent mre = new ManualResetEvent(false);


            SimpleSockets.Server.ObjectReceivedDelegate msgRec = (client, obj, objType) => {
                counter.Count();
                if (counter.GetCount == (_numClients * _numMessages))
                {
                    mre.Set();
                }
            };

            _server.ObjectReceived += msgRec;

            foreach (var client in _clients)
            {
                new Thread(() => SendMessages(client, true)).Start();
            }

            // If it can't complete in 30 minutes fail
            mre.WaitOne(new TimeSpan(0, 30, 0));

            _server.ObjectReceived -= msgRec;
            Assert.AreEqual((_numMessages * _numClients), counter.GetCount);             // True if all messages have been received.
        }
示例#2
0
        public void Client_Object_Server()
        {
            string   name   = "Cloet";
            string   text   = "This is the text of a custom object send to the server from the client.";
            DateTime date   = new DateTime(2000, 1, 1);
            double   number = 50.5989;

            var customObject = new DataObject(name, text, number, date);

            SimpleSockets.Server.ObjectReceivedDelegate msgRec = (client, obj, objType) => {
                if (objType == typeof(DataObject))
                {
                    var rec = (DataObject)Convert.ChangeType(obj, objType);
                    Assert.AreEqual(name, rec.Name);
                    Assert.AreEqual(text, rec.Text);
                    Assert.AreEqual(date, rec.Date);
                    Assert.AreEqual(number, rec.Number);
                }
                else
                {
                    Assert.IsTrue(false);
                }
            };

            using (var monitor = new EventMonitor(_server, "ObjectReceived", msgRec, Mode.MANUAL)) {
                _client.SendObject(customObject);
                monitor.Verify();
            }
        }