Example #1
0
        public async Task GetRepositoryEntities_ReturnsEmptyCollection_WhenApiIsNonSuccess()
        {
            var mockHttpClient = new Mock <IHttpClient>();
            var mockLogger     = new Mock <ILogger>(MockBehavior.Strict);

            mockHttpClient.Setup(e => e.GetAsync(It.IsAny <string>())).Returns(
                Task.FromResult(new HttpResponseMessage(HttpStatusCode.NotFound)));

            var sut      = new GitHubAPIDataRepository(mockHttpClient.Object, mockLogger.Object);
            var response = await sut.GetRepositoryEntities("repoUrl");

            Assert.That(response.Count() == 0);
        }
Example #2
0
        public async Task GetUserEntity_ReturnsNull_WhenApiIsNonSuccess()
        {
            var mockHttpClient = new Mock <IHttpClient>();
            var mockLogger     = new Mock <ILogger>(MockBehavior.Strict);

            mockHttpClient.Setup(e => e.GetAsync(It.IsAny <string>())).Returns(
                Task.FromResult(new HttpResponseMessage(HttpStatusCode.NotFound)));

            var sut      = new GitHubAPIDataRepository(mockHttpClient.Object, mockLogger.Object);
            var response = await sut.GetUserEntity("gitHandle");

            Assert.IsNull(response);
        }
Example #3
0
        public async Task GetUserEntity_LogsErrors_WhenclientThrowsExceptions(string errorMessage)
        {
            var mockHttpClient = new Mock <IHttpClient>();
            var mockLogger     = new Mock <ILogger>(MockBehavior.Strict);

            mockLogger.Setup(e => e.Error(It.IsAny <Exception>(), "gitHandle")).Verifiable();
            mockHttpClient.Setup(e => e.GetAsync(It.IsAny <string>())).Throws(new Exception(errorMessage));

            var sut = new GitHubAPIDataRepository(mockHttpClient.Object, mockLogger.Object);

            Assert.ThrowsAsync <Exception>(async() => await sut.GetUserEntity("gitHandle"));
            mockLogger.Verify(e => e.Error(It.IsAny <Exception>(), "gitHandle"), Times.Once);
        }
Example #4
0
        public async Task GetUserEntity_ReturnsCorrectObject_WhenApiIsOK(string name, string avatar, string location)
        {
            var httpResponseString = string.Format(userResponseJsonFormatString, name, avatar, location);
            var mockHttpClient     = new Mock <IHttpClient>();
            var mockLogger         = new Mock <ILogger>(MockBehavior.Strict);

            mockHttpClient.Setup(e => e.GetAsync(It.IsAny <string>())).Returns(Task.FromResult(
                                                                                   new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(httpResponseString, Encoding.UTF8, "application/json")
            }));

            var sut      = new GitHubAPIDataRepository(mockHttpClient.Object, mockLogger.Object);
            var response = await sut.GetUserEntity("gitHandle");

            Assert.That(response.login == name);
            Assert.That(response.avatar_url == avatar);
            Assert.That(response.location == location);
        }
Example #5
0
        public async Task GetRepositoryEntities_ReturnsCorrectObject_WhenApiIsOK(string name, int stargazers)
        {
            var httpResponseString = string.Format(repositoryResponseJsonFormatString, name, stargazers);
            var mockHttpClient     = new Mock <IHttpClient>();
            var mockLogger         = new Mock <ILogger>(MockBehavior.Strict);

            mockHttpClient.Setup(e => e.GetAsync(It.IsAny <string>())).Returns(Task.FromResult(
                                                                                   new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(httpResponseString, Encoding.UTF8, "application/json")
            }));

            var sut      = new GitHubAPIDataRepository(mockHttpClient.Object, mockLogger.Object);
            var response = await sut.GetRepositoryEntities("repositoryUrl");

            var returnedRepository = response.FirstOrDefault();

            Assert.That(returnedRepository.name == name);
            Assert.That(returnedRepository.stargazers_count == stargazers);
        }