コード例 #1
0
        public void Process_GetResult_ShouldSendResultAndUpdateTask()
        {
            TaskService.Invocations.Clear();
            Sender.Invocations.Clear();

            var taskId = Guid.NewGuid();

            var queueName = "144_CallbackQueue";
            var message   = "{\"email\" : \"[email protected]\", \"name\": \"test\", \"password\": \"123456\", \"task_id\":\"" + taskId + "\",\"callback_queue_name\":\"" + queueName + "\"}";
            var result    = string.Empty;

            var createdAddress = string.Empty;

            TaskService.Setup(x => x.UpdateStatus(taskId, Enums.TaskStatus.Completed, It.IsAny <string>()))
            .Callback <Guid, Enums.TaskStatus, string>((idParam, statusParam, messageParam) => { result = messageParam; });

            var message1       = new CreateClientMessage();
            var sendingMessage = string.Empty;

            TaskService.Setup(x => x.SetError(taskId, It.IsAny <string>()));
            Sender.Setup(x => x.SendMessage(It.IsAny <string>(), It.IsAny <string>())).Callback <string, string>((queueParam, messageParam) => { sendingMessage = messageParam; });

            var service = new CreateClientMessageProcessor(TaskService.Object, CustomerService.Object, Sender.Object);

            service.Process(message);

            TaskService.Verify(x => x.UpdateStatus(taskId, Enums.TaskStatus.Completed, It.IsAny <string>()), Times.Once);
            TaskService.Verify(x => x.SetError(taskId, It.IsAny <string>()), Times.Never);
            Sender.Verify(x => x.SendMessage(It.IsAny <string>(), It.IsAny <string>()), Times.Once);
        }
コード例 #2
0
        public CreateClientResult CreateClient(Client client)
        {
            var task = _taskService.CreateTask(TaskType.CreateClient, JsonConvert.SerializeObject(new { client.Email, client.Name, client.Password }));

            var callbackQueueName = $"{task.Id}_CallbackQueue";

            var message = new CreateClientMessage
            {
                Name              = client.Name,
                Email             = client.Email,
                CallbackQueueName = callbackQueueName,
                TaskId            = task.Id,
            };

            var result = _requestManager.TryToExecute(MessageType.CreateClient.ToString(), JsonConvert.SerializeObject(message), callbackQueueName);

            if (result.Result)
            {
                try
                {
                    return(JsonConvert.DeserializeObject <CreateClientResult>(result.Value));
                }
                catch (Exception)
                {
                    throw new Exception($"Problem with response deserialization: {result.Value}.");
                }
            }

            return(new CreateClientResult {
                TaskId = task.Id
            });
        }
コード例 #3
0
 private void HandleCreateClientMessage(CreateClientMessage createClientMessage)
 {
     DisplayClientViewModel.Initialize();
     Mode = Modes.Display;
 }