Esempio n. 1
0
        public async Task <ServiceCheckResultDto> CheckServiceAsync(Shared.Service service)
        {
            var requestTasks = new List <Task <KeyValuePair <string, string> > >();

            if (!string.IsNullOrWhiteSpace(service.LocalUrl))
            {
                requestTasks.Add(CheckUrl(service.LocalUrl));
            }
            if (!string.IsNullOrWhiteSpace(service.LocalNetworkUrl))
            {
                requestTasks.Add(CheckUrl(service.LocalNetworkUrl));
            }
            if (!string.IsNullOrWhiteSpace(service.PublicNetworkUrl))
            {
                requestTasks.Add(CheckUrl(service.PublicNetworkUrl));
            }

            var checkResult = new ServiceCheckResultDto {
                Service = service
            };

            var responses = await Task.WhenAll(requestTasks);

            foreach (var response in responses)
            {
                if (response.Value != string.Empty)
                {
                    checkResult.Errors.Add(response);
                }
            }

            return(checkResult);
        }
Esempio n. 2
0
        public async Task CheckServiceAsyncShouldReturnCheckResultThatOnlyAffectedByNotEmptyUrlsResult()
        {
            var service = new Shared.Service
            {
                Name             = "Service",
                LocalUrl         = "http://localhost:1234",
                LocalNetworkUrl  = "http://testlocal:1234",
                PublicNetworkUrl = ""
            };

            _messageHandlerMock.Protected()
            .Setup <Task <HttpResponseMessage> >("SendAsync",
                                                 ItExpr.IsAny <HttpRequestMessage>(),
                                                 ItExpr.IsAny <CancellationToken>())
            .ReturnsAsync(new HttpResponseMessage(HttpStatusCode.OK))
            .Verifiable();

            var result = await _serviceChecker.CheckServiceAsync(service);

            Assert.NotNull(result);
            Assert.Empty(result.Errors);
        }
Esempio n. 3
0
        public async Task CheckServiceAsyncShouldCheckOnlyServiceUrlsThatNotEmpty()
        {
            var service = new Shared.Service
            {
                Name             = "Service",
                LocalUrl         = "http://localhost:1234",
                LocalNetworkUrl  = "http://testlocal:1234",
                PublicNetworkUrl = ""
            };

            _messageHandlerMock.Protected()
            .Setup <Task <HttpResponseMessage> >("SendAsync",
                                                 ItExpr.IsAny <HttpRequestMessage>(),
                                                 ItExpr.IsAny <CancellationToken>())
            .ReturnsAsync(new HttpResponseMessage(HttpStatusCode.OK))
            .Verifiable();

            var result = await _serviceChecker.CheckServiceAsync(service);

            _messageHandlerMock.Protected().Verify(
                "SendAsync",
                Times.Never(),
                ItExpr.Is <HttpRequestMessage>(request =>
                                               !request.RequestUri.ToString().Contains(service.LocalUrl) &&
                                               !request.RequestUri.ToString().Contains(service.LocalNetworkUrl)),
                ItExpr.IsAny <CancellationToken>());

            _messageHandlerMock.Protected().Verify(
                "SendAsync",
                Times.AtLeastOnce(),
                ItExpr.Is <HttpRequestMessage>(request => request.RequestUri.ToString().Contains(service.LocalUrl)),
                ItExpr.IsAny <CancellationToken>());

            _messageHandlerMock.Protected().Verify(
                "SendAsync",
                Times.AtLeastOnce(),
                ItExpr.Is <HttpRequestMessage>(request => request.RequestUri.ToString().Contains(service.LocalNetworkUrl)),
                ItExpr.IsAny <CancellationToken>());
        }