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); }
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); }
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>()); }