Пример #1
0
        public void parametrized_constructor_without_details_should_assign_all_parameters()
        {
            var message = new CallErrorMessage(callId, errorUri, errorDescription);

            message.ErrorUri.Should().Be(errorUri);
            message.CallId.Should().Be(callId);
            message.ErrorDescription.Should().Be(errorDescription);
            message.ErrorDetails.Should().BeNull();
        }
Пример #2
0
        public void array_serialization_without_details_serializes_all_properties_in_correct_order()
        {
            var message = new CallErrorMessage(callId, errorUri, errorDescription);
            var array   = message.ToArray();

            array.Length.Should().Be(4);
            array[0].Should().Be(MessageTypes.CallError);
            array[1].Should().Be(callId);
            array[2].Should().Be(errorUri);
            array[3].Should().Be(errorDescription);
        }
Пример #3
0
        /// <summary>
        /// Handles an incoming <see cref="CallMessage"/> object, scheduling a remote procedure call.
        /// </summary>
        /// <param name="messageContext">Context wrapper object for incoming WAMP message</param>
        public virtual void Handle(MessageContext messageContext)
        {
            var message = messageContext.Message as CallMessage;

            if (message != null)
            {
                ProcedureDefinition procedureDefinition;
                if (messageContext.Procedures.TryGetValue(message.ProcUri, out procedureDefinition))
                {
                    var context = CreateProcedureContext(message, procedureDefinition, messageContext.SenderSession);
                    messageContext.Scheduler.Schedule(context);
                }
                else
                {
                    var errorUri         = messageContext.HostAddress + "/Error#ProcedureNotFound";
                    var description      = string.Format("No remote procedure for {0} URI has been found", message.ProcUri);
                    var callErrorMessage = new CallErrorMessage(message.CallId, errorUri, description);

                    messageContext.Response.Send(messageContext.SenderSession.SessionId, callErrorMessage);
                }
            }
        }
Пример #4
0
        /// <summary>
        /// Handles an incoming <see cref="CallMessage"/> object, scheduling a remote procedure call.
        /// </summary>
        /// <param name="messageContext">Context wrapper object for incoming WAMP message</param>
        public virtual void Handle(MessageContext messageContext)
        {
            var message = messageContext.Message as CallMessage;

            if (message != null)
            {
                ProcedureDefinition procedureDefinition;
                if (messageContext.Procedures.TryGetValue(message.ProcUri, out procedureDefinition))
                {
                    var context = CreateProcedureContext(message, procedureDefinition, messageContext.SenderSession);
                    messageContext.Scheduler.Schedule(context);
                }
                else
                {
                    var errorUri = messageContext.HostAddress + "/Error#ProcedureNotFound";
                    var description = string.Format("No remote procedure for {0} URI has been found", message.ProcUri);
                    var callErrorMessage = new CallErrorMessage(message.CallId, errorUri, description);

                    messageContext.Response.Send(messageContext.SenderSession.SessionId, callErrorMessage);
                }
            }
        }
Пример #5
0
        public void message_type_implements_IMessage_interface()
        {
            var message = new CallErrorMessage();

            (message is IMessage).Should().BeTrue();
        }