Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        /// <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;
        }