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. }
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(); } }