public async Task WebUptimeMetricLogic_ProcessServer_RequestThrowsException() { //Arrange var server = new Server { ServerIpAddress = "127.0.0.1", ServerName = "1.com", UptimeMonitoringResourceHost = null, UptimeMonitoringResourceUseHttps = null }; SetupHttpClientAdditionalResponses(new Uri("http://127.0.0.1/Relativity/"), HttpStatusCode.NotFound); httpClientHandler.Protected() .Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.Is <HttpRequestMessage>(r => r.RequestUri == new Uri("https://127.0.0.1/Relativity/")), ItExpr.IsAny <CancellationToken>()) .Throws(new HttpRequestException("An error occurred while sending the request.")); httpClient = new HttpClient(httpClientHandler.Object); var logic = new WebUptimeMetricLogic(httpClientFactoryMock.Object, serverRepository.Object, metricDataService.Object, configRepository.Object, logger.Object); //Act var result = await logic.ProcessServer(server, httpClient); //Assert Assert.That(result, Is.Not.Null); httpClientHandler.Protected() .Verify <Task <HttpResponseMessage> >("SendAsync", Times.Exactly(3), ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()); }
public async Task WebUptimeMetricLogic_ProcessServer_NoSuccessfulUrls() { //Arrange var server = new Server { ServerIpAddress = "127.0.0.1", ServerName = "1.com", UptimeMonitoringResourceHost = null, UptimeMonitoringResourceUseHttps = null }; SetupHttpClientAdditionalResponses(new Uri("http://127.0.0.1/Relativity/"), HttpStatusCode.NotFound); SetupHttpClientAdditionalResponses(new Uri("https://127.0.0.1/Relativity/"), HttpStatusCode.NotFound); SetupHttpClientAdditionalResponses(new Uri("http://1.com/Relativity/"), HttpStatusCode.NotFound); SetupHttpClientAdditionalResponses(new Uri("https://1.com/Relativity/"), HttpStatusCode.NotFound); httpClient = new HttpClient(httpClientHandler.Object); var logic = new WebUptimeMetricLogic(httpClientFactoryMock.Object, serverRepository.Object, metricDataService.Object, configRepository.Object, logger.Object); //Act var result = await logic.ProcessServer(server, httpClient); //Assert Assert.That(result, Is.Null); httpClientHandler.Protected() .Verify <Task <HttpResponseMessage> >("SendAsync", Times.Exactly(4), ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>()); this.logger.Verify(l => l.LogVerboseAsync("ProcessServer Called for Web - Failure. Server: 1.com. Details: Web server unreachable.", It.IsAny <List <string> >())); }