Пример #1
0
        public async Task RoadData_WhenApiResponseIsSuccessful_ReturnData()
        {
            //Arrange
            _fakeMessageHandler = new Mock <HttpMessageHandler>(MockBehavior.Strict);
            _fakeMessageHandler.Protected()
            .Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>())
            .ReturnsAsync(new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(JsonResponseSuccessful()),
            })
            .Verifiable();

            _httpClient = new HttpClient(_fakeMessageHandler.Object);

            _instance = new RoadData(_fakeApiConfig.Object, _httpClient);

            //Act
            var response = await _instance.GetRoadStatusData("A2");

            //Assert
            Assert.IsNotNull(response);
            Assert.IsNotNull(response.RoadCorridorList);
            Assert.AreEqual(1, response.RoadCorridorList.Count);

            //test response data
            Assert.AreEqual("A2", response.RoadCorridorList[0].DisplayName);
            Assert.AreEqual("Good", response.RoadCorridorList[0].StatusSeverity);
            Assert.AreEqual("No Exceptional Delays", response.RoadCorridorList[0].StatusSeverityDescription);
        }
Пример #2
0
        public void RoadData_WhenApiResponseIsInternalServerError_ThrowAnotherException()
        {
            //Arrange
            _fakeMessageHandler = new Mock <HttpMessageHandler>(MockBehavior.Strict);
            _fakeMessageHandler.Protected()
            .Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>())
            .ReturnsAsync(new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.InternalServerError,
                Content    = new StringContent("Error")
            })
            .Verifiable();

            _httpClient = new HttpClient(_fakeMessageHandler.Object);
            _instance   = new RoadData(_fakeApiConfig.Object, _httpClient);

            //Act - Assert
            Assert.ThrowsAsync <Exception>(() => _instance.GetRoadStatusData("XYZ"));
        }
Пример #3
0
        public async Task RoadData_WhenApiResponseIsNotFound_ThrowException()
        {
            //Arrange
            _fakeMessageHandler = new Mock <HttpMessageHandler>(MockBehavior.Strict);
            _fakeMessageHandler.Protected()
            .Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>())
            .ReturnsAsync(new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.NotFound,
                Content    = new StringContent(JsonResponseFailure()),
            })
            .Verifiable();

            _httpClient = new HttpClient(_fakeMessageHandler.Object);
            try
            {
                _instance = new RoadData(_fakeApiConfig.Object, _httpClient);

                //Act
                var response = await _instance.GetRoadStatusData("A233");

                Assert.Fail("Failed Api Response did not throw an exception.");
            }
            catch (TfLApiException ex)
            {
                //Assert
                Assert.IsNotNull(ex);
                Assert.IsNotNull(ex.ExceptionDetails);
                Assert.AreEqual(404, ex.ExceptionDetails.HttpStatusCode);
                Assert.AreEqual("NotFound", ex.ExceptionDetails.HttpStatus);
            }
            catch (Exception)
            {
                Assert.Fail("Wrong exception returned.");
            }
        }
Пример #4
0
 public RoadService(IMapping mappingDetails, IRoadData roadData)
 {
     _mapping  = mappingDetails;
     _roadData = roadData;
 }