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