Exemplo n.º 1
0
        public void Host_ReceiveDataTest()
        {
            GameMessage inMessage = new GameMessage { Content = _messageContent };
            GameMessage outMessage = new GameMessage();
            Host host = new Host();
            Action<IPAddress, IConfigurable> theAction = (notImportant, receivedObject) => outMessage = (GameMessage)receivedObject;
            host.ObjectReceived += theAction;
            host.ReceiveData(_someAddress, _converter.ObjectToString(inMessage));
            Assert.That(outMessage.Content.Equals(inMessage.Content));
            host.ObjectReceived -= theAction;
            host.StopMonitoringDataFromSender(_someAddress);

            bool malformedEventNotRaised = true;
            Action<IPAddress, string> shouldNotExecute = (notImportant, whoCares) => malformedEventNotRaised = false;
            object outObject = new object();
            theAction = (notImportant, receivedObject) => outObject = receivedObject;
            host.ObjectReceived += theAction;
            host.ReceiveData(_someAddress, _validObjectString);
            Assert.That(malformedEventNotRaised);
            Assert.That(outObject == null);
            host.ObjectReceived -= theAction;
            host.StopMonitoringDataFromSender(_someAddress);

            string mixedString = _validObjectString + _validObjectString + _malformedObjectString + _otherMessageContent;
            List<object> validObjects = new List<object>();
            Action<IPAddress, IConfigurable> onValidReceived = (notImportant, receivedObject) => validObjects.Add(receivedObject);
            host.ObjectReceived += onValidReceived;
            host.ReceiveData(_someAddress, mixedString);
            Assert.That(validObjects[0] == null);
            Assert.That(validObjects[1] == null);
        }