示例#1
0
        public async Task ApiDataProcessorServicePostReturnsExceptionForNoHttpClient()
        {
            // arrange
            var apiDataProcessorService = new ApiDataProcessorService(fakeApiService);

            // act
            var exceptionResult = await Assert.ThrowsAsync <ArgumentNullException>(async() => await apiDataProcessorService.PostAsync(null, new Uri("https://somewhere.com")).ConfigureAwait(false)).ConfigureAwait(false);

            // assert
            A.CallTo(() => fakeApiService.PostAsync(A <HttpClient> .Ignored, A <Uri> .Ignored)).MustNotHaveHappened();
            Assert.Equal("Value cannot be null. (Parameter 'httpClient')", exceptionResult.Message);
        }
示例#2
0
        public async Task ApiDataProcessorServiceGetReturnsNullForNoData()
        {
            // arrange
            ApiSummaryModel?expectedResult = null;

            A.CallTo(() => fakeApiService.GetAsync(A <HttpClient> .Ignored, A <Uri> .Ignored, A <string> .Ignored)).Returns(string.Empty);

            var apiDataProcessorService = new ApiDataProcessorService(fakeApiService);

            // act
            var result = await apiDataProcessorService.GetAsync <ApiSummaryModel>(A.Fake <HttpClient>(), new Uri("https://somewhere.com")).ConfigureAwait(false);

            // assert
            A.CallTo(() => fakeApiService.GetAsync(A <HttpClient> .Ignored, A <Uri> .Ignored, A <string> .Ignored)).MustHaveHappenedOnceExactly();
            A.Equals(result, expectedResult);
        }
示例#3
0
        public async Task ApiDataProcessorServicePostReturnsSuccess()
        {
            // arrange
            var expectedResult = HttpStatusCode.Created;

            A.CallTo(() => fakeApiService.PostAsync(A <HttpClient> .Ignored, A <Uri> .Ignored)).Returns(expectedResult);

            var apiDataProcessorService = new ApiDataProcessorService(fakeApiService);

            // act
            var result = await apiDataProcessorService.PostAsync(A.Fake <HttpClient>(), new Uri("https://somewhere.com")).ConfigureAwait(false);

            // assert
            A.CallTo(() => fakeApiService.PostAsync(A <HttpClient> .Ignored, A <Uri> .Ignored)).MustHaveHappenedOnceExactly();
            A.Equals(result, expectedResult);
        }
示例#4
0
        public async Task ApiDataProcessorServiceGetReturnsSuccess()
        {
            // arrange
            var expectedResult = new ApiSummaryModel
            {
                Url         = new Uri("https://somewhere.com"),
                Title       = "a-name",
                Published   = DateTime.Now,
                CreatedDate = DateTime.Now,
            };
            var jsonResponse = JsonConvert.SerializeObject(expectedResult);

            A.CallTo(() => fakeApiService.GetAsync(A <HttpClient> .Ignored, A <Uri> .Ignored, A <string> .Ignored)).Returns(jsonResponse);

            var apiDataProcessorService = new ApiDataProcessorService(fakeApiService);

            // act
            var result = await apiDataProcessorService.GetAsync <ApiSummaryModel>(A.Fake <HttpClient>(), new Uri("https://somewhere.com")).ConfigureAwait(false);

            // assert
            A.CallTo(() => fakeApiService.GetAsync(A <HttpClient> .Ignored, A <Uri> .Ignored, A <string> .Ignored)).MustHaveHappenedOnceExactly();
            A.Equals(result, expectedResult);
        }