Exemple #1
0
        public void ApiRequestor_Constructor_IResponseInterpreterIsNull_ArgumentNullException()
        {
            // arrange
            var httpClient = new MockHttpClientAdapter(null);

            // act
            // assert
            Assert.ThrowsException <ArgumentNullException>(() => new ApiRequestor <TestResponseData>(httpClient, null));
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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);
        }
Exemple #5
0
        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);
        }