public void Invoke() { var endpoint = new EndpointId("id"); ICommunicationMessage storedMsg = null; SendMessage sendAction = (e, m, r) => { storedMsg = m; }; var systemDiagnostics = new SystemDiagnostics((p, s) => { }, null); var data = "a"; var responseData = "b"; KeepAliveResponseCustomDataBuilder customData = o => { Assert.AreSame(data, o); return(responseData); }; var action = new ConnectionVerificationProcessAction(endpoint, sendAction, systemDiagnostics, customData); var id = new EndpointId("id"); var msg = new ConnectionVerificationMessage(id, data); action.Invoke(msg); var responseMessage = storedMsg as ConnectionVerificationResponseMessage; Assert.IsNotNull(responseMessage); Assert.AreEqual(msg.Id, responseMessage.InResponseTo); Assert.AreSame(responseData, responseMessage.ResponseData); }
public void MessageTypeToProcess() { var endpoint = new EndpointId("id"); SendMessage sendAction = (e, m, r) => { }; var systemDiagnostics = new SystemDiagnostics((p, s) => { }, null); KeepAliveResponseCustomDataBuilder customData = o => o; var action = new ConnectionVerificationProcessAction(endpoint, sendAction, systemDiagnostics, customData); Assert.AreEqual(typeof(ConnectionVerificationMessage), action.MessageTypeToProcess); }
/// <summary> /// Initializes a new instance of the <see cref="ConnectionVerificationProcessAction"/> class. /// </summary> /// <param name="localEndpoint">The endpoint ID of the local endpoint.</param> /// <param name="sendMessage">The action that is used to send messages.</param> /// <param name="systemDiagnostics">The object that provides the diagnostics methods for the system.</param> /// <param name="responseDataBuilder">The function that is used to generate the response data for a keep-alive message.</param> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="localEndpoint"/> is <see langword="null" />. /// </exception> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="sendMessage"/> is <see langword="null" />. /// </exception> /// <exception cref="ArgumentNullException"> /// Thrown if <paramref name="systemDiagnostics"/> is <see langword="null" />. /// </exception> public ConnectionVerificationProcessAction( EndpointId localEndpoint, SendMessage sendMessage, SystemDiagnostics systemDiagnostics, KeepAliveResponseCustomDataBuilder responseDataBuilder = null) { { Lokad.Enforce.Argument(() => localEndpoint); Lokad.Enforce.Argument(() => sendMessage); Lokad.Enforce.Argument(() => systemDiagnostics); } m_Current = localEndpoint; m_SendMessage = sendMessage; m_Diagnostics = systemDiagnostics; m_ResponseDataBuilder = responseDataBuilder; }