Esempio n. 1
0
        public void Invoke(ICommunicationMessage message)
        {
            var msg = message as ConnectionVerificationMessage;

            if (msg == null)
            {
                Debug.Assert(false, "The message is of the incorrect type.");
                return;
            }

            // Process message and send response
            object responseData = null;

            if (m_ResponseDataBuilder != null)
            {
                responseData = m_ResponseDataBuilder(msg.CustomData);
            }

            try
            {
                var response = new ConnectionVerificationResponseMessage(m_Current, message.Id, responseData);
                m_SendMessage(message.Sender, response, CommunicationConstants.DefaultMaximuNumberOfRetriesForMessageSending);
            }
            catch (Exception e)
            {
                m_Diagnostics.Log(
                    LevelToLog.Error,
                    CommunicationConstants.DefaultLogTextPrefix,
                    string.Format(
                        CultureInfo.InvariantCulture,
                        "Error while trying to send keep-alive message response. Exception is: {0}",
                        e));
            }
        }
        public void FromMessageWithNullResponseData()
        {
            var serializers = new Mock <IStoreObjectSerializers>();
            {
                serializers.Setup(s => s.HasSerializerFor(It.IsAny <Type>()))
                .Returns(true);
                serializers.Setup(s => s.SerializerFor(It.IsAny <Type>()))
                .Returns(new NonTransformingObjectSerializer());
            }

            var translator = new ConnectionVerificationResponseConverter(serializers.Object);

            var msg  = new ConnectionVerificationResponseMessage(new EndpointId("a"), new MessageId());
            var data = translator.FromMessage(msg);

            Assert.IsInstanceOf(typeof(ConnectionVerificationResponseData), data);
            Assert.AreSame(msg.Id, data.Id);
            Assert.AreSame(msg.Sender, data.Sender);
            Assert.AreSame(msg.InResponseTo, data.InResponseTo);
            Assert.AreEqual(typeof(object).FullName, ((ConnectionVerificationResponseData)data).DataType.FullName);
            Assert.AreEqual(typeof(object).Assembly.GetName().Name, ((ConnectionVerificationResponseData)data).DataType.AssemblyName);
            Assert.IsNull(((ConnectionVerificationResponseData)data).ResponseData);
        }