public void ApiRequestor_Constructor_IResponseInterpreterIsNull_ArgumentNullException() { // arrange var httpClient = new MockHttpClientAdapter(null); // act // assert Assert.ThrowsException <ArgumentNullException>(() => new ApiRequestor <TestResponseData>(httpClient, null)); }
public async Task ApiRequestor_GetApiResult_NullUri_ArgumentNullException() { // arrange var httpClient = new MockHttpClientAdapter(null); var apiRequestor = new ApiRequestor <TestResponseData>(httpClient, responseInterpreter); // act // assert await Assert.ThrowsExceptionAsync <ArgumentNullException>(async() => await apiRequestor.GetApiResult(null)); }
public async Task ApiRequestor_GetApiResult_OtherHttpResponse_FailedResult() { // arrange var httpClient = new MockHttpClientAdapter(HttpRequestMessageHelper.CreateInvalidResponse()); var apiRequestor = new ApiRequestor <TestResponseData>(httpClient, responseInterpreter); // act var result = await apiRequestor.GetApiResult(testUri); // assert Assert.AreEqual(result.Item1, ResponseEnum.Failed); Assert.IsNull(result.Item2); }
public async Task IntegrationTest_ValidRequest() { const string roadName = "a2"; const string apiPath = "/road/a2"; // arrange var response = HttpRequestMessageHelper.CreateOKResponseWithContent(); var httpClientAdapter = new MockHttpClientAdapter(response); IResponseInterpreter <RoadCorridor> responseInterpreter = new ResponseInterpreter <RoadCorridor>(r => new CurrentRoadStatus { DisplayName = r.DisplayName, StatusSeverity = r.StatusSeverity, StatusSeverityDescription = r.StatusSeverityDescription }); IApiRequestor apiRequestor = new ApiRequestor <RoadCorridor>(httpClientAdapter, responseInterpreter); //act var interpretedResponse = await apiRequestor.GetApiResult(apiPath); // Deconstruct the tuple var responseCode = interpretedResponse.Item1; var currentRoadStatus = interpretedResponse.Item2; var stringBuilder = new StringBuilder(); using (var stringWriter = new StringWriter(stringBuilder)) { FormattedOutputFactory formattedOutputFactory = new FormattedOutputFactory(stringWriter); var formattedOutput = formattedOutputFactory.GenerateFormattedOutput(responseCode); formattedOutput.WriteOutput(roadName, currentRoadStatus); } // assert StringReader stringReader = new StringReader(stringBuilder.ToString()); var line1 = stringReader.ReadLine(); Assert.AreEqual(String.Format(SuccessFormattedOutput.SuccessMessageLine1, currentRoadStatus.DisplayName), line1); var line2 = stringReader.ReadLine(); Assert.AreEqual(String.Format(SuccessFormattedOutput.SuccessMessageLine2, currentRoadStatus.StatusSeverity), line2); var line3 = stringReader.ReadLine(); Assert.AreEqual(String.Format(SuccessFormattedOutput.SuccessMessageLine3, currentRoadStatus.StatusSeverityDescription), line3); }
public async Task ApiRequestor_GetApiResult_OkHttpResponse_SuccessResult() { // arrange var currentRoadStatus = new Entities.CurrentRoadStatus { DisplayName = "A2", StatusSeverity = "Good", StatusSeverityDescription = "Good" }; var responseInterpreter = new MockRequestInterpreter <TestResponseData>(currentRoadStatus); var httpClient = new MockHttpClientAdapter(HttpRequestMessageHelper.CreateOKResponse()); var apiRequestor = new ApiRequestor <TestResponseData>(httpClient, responseInterpreter); // act var result = await apiRequestor.GetApiResult(testUri); // assert Assert.AreEqual(result.Item1, ResponseEnum.Success); Assert.AreEqual(currentRoadStatus.DisplayName, result.Item2.DisplayName); Assert.AreEqual(currentRoadStatus.StatusSeverity, result.Item2.StatusSeverity); Assert.AreEqual(currentRoadStatus.StatusSeverityDescription, result.Item2.StatusSeverityDescription); }