public async Task RegisterAgent_ReturnOk()
        {
            Uri url     = new Uri("https://localhost:5201/");
            var command = new RegisterAgentCommand()
            {
                AgentUrl  = url,
                IsEnabled = true
            };

            _mockMediator.Setup(mediator => mediator.Send(It.IsAny <RegisterAgentCommand>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new AgentInfoDto()
            {
                AgentId   = 2,
                AgentUrl  = url,
                IsEnabled = false
            });

            var result = await _controller.RegisterAgent(command);

            var resultValue = ((OkObjectResult)result).Value as AgentInfoDto;

            _mockMediator.Verify(mediator => mediator.Send(It.Is <RegisterAgentCommand>(
                                                               m => m.AgentUrl == command.AgentUrl && m.IsEnabled == command.IsEnabled),
                                                           It.IsAny <CancellationToken>()), Times.Once);

            Assert.Equal(2, resultValue.AgentId);
            Assert.Equal(url, resultValue.AgentUrl);
            Assert.False(resultValue.IsEnabled);
            Assert.IsAssignableFrom <IActionResult>(result);
        }
        public void RegisterAgent_ShouldCall_LogInformation()
        {
            Uri url     = new Uri("https://localhost:5201/");
            var command = new RegisterAgentCommand()
            {
                AgentUrl  = url,
                IsEnabled = true
            };

            _mockMediator.Setup(mediator => mediator.Send(It.IsAny <RegisterAgentCommand>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(new AgentInfoDto()
            {
                AgentId   = 2,
                AgentUrl  = url,
                IsEnabled = false
            });
            var logText = $"Register Agent Parameters: command={command}";

            _ = _controller.RegisterAgent(command);

            _mockLogger.Verify(
                x => x.Log(
                    It.Is <LogLevel>(l => l == LogLevel.Information),
                    It.IsAny <EventId>(),
                    It.Is <It.IsAnyType>((v, t) => v.ToString().CompareTo(logText) == 0),
                    It.IsAny <Exception>(),
                    It.Is <Func <It.IsAnyType, Exception, string> >((v, t) => true)));
        }
Beispiel #3
0
        public async Task <IActionResult> RegisterAgent([FromBody] RegisterAgentCommand request)
        {
            if (Uri.IsWellFormedUriString(request.AgentUrl.ToString(), UriKind.Absolute))
            {
                _logger.LogInformation($"Register Agent Parameters: command={request}");

                var result = await _mediator.Send(request);

                return(Ok(result));
            }
            else
            {
                return(BadRequest("Ошибка запроса"));
            }
        }