예제 #1
0
        public void CallOfGetReposByUsername_ReturnsListOfGhUserRepo_ShouldPass()
        {
            // Arrange
            var mockHttpClientProvider = new Mock <IHttpClientProvider>();

            mockHttpClientProvider.Setup(o => o.GetHttpClientInstance()).Returns(new HttpClient());

            var mockHCAuthConfigr = new Mock <IHttpClientAuthorizeConfigurator>();

            mockHCAuthConfigr.Setup(o => o.AddBasicAuthorizationHeaderValue(
                                        It.IsAny <HttpClient>(),
                                        It.IsAny <string>(),
                                        It.IsAny <string>())).Returns(true);

            var mockGHReposSvc = new Mock <IGitHubRepos>();

            // will be calling ghRepos.GetGitHubReposAsync(httpClient, ghUsername);
            // The method will return an empty collection if there are any
            // problems, or no public repos are found, so set it up to return
            // a List containing a single item.
            mockGHReposSvc.Setup(o => o.GetGitHubReposAsync(
                                     It.IsAny <HttpClient>(),
                                     It.IsAny <string>())).ReturnsAsync(() => new List <GhUserRepo> {
                new GhUserRepo()
            });

            var mockGHPRsSvc = new Mock <IGitHubPullReqs>();

            // Act
            GitHubApiCallServices apiCallServices = new GitHubApiCallServices(
                mockHttpClientProvider.Object,
                mockHCAuthConfigr.Object,
                mockGHReposSvc.Object,
                mockGHPRsSvc.Object,
                mockCredentialsReader.Object);

            var taskOfListOfGhUserRepos =
                apiCallServices.GetPublicGhUserReposByUsername("github");
            var returnedList = taskOfListOfGhUserRepos.Result;

            // Assert
            Assert.IsNotNull(returnedList);
            Assert.IsInstanceOfType(returnedList, typeof(List <GhUserRepo>));
            Assert.AreEqual(1, returnedList.Count);
        }
예제 #2
0
        public async Task CallOfGetReposByUsername_WithEmptyUsername_ShouldThrow()
        {
            // Arrange
            var mockHttpClientProvider = new Mock <IHttpClientProvider>();
            var mockHCAuthConfigr      = new Mock <IHttpClientAuthorizeConfigurator>();
            var mockGHReposSvc         = new Mock <IGitHubRepos>();
            var mockGHPRsSvc           = new Mock <IGitHubPullReqs>();

            // Act
            GitHubApiCallServices apiCallServices = new GitHubApiCallServices(
                mockHttpClientProvider.Object,
                mockHCAuthConfigr.Object,
                mockGHReposSvc.Object,
                mockGHPRsSvc.Object,
                mockCredentialsReader.Object);

            var taskOfListOfGhUserRepos =
                await apiCallServices.GetPublicGhUserReposByUsername(" ");

            // Should have thrown.
        }
예제 #3
0
        public async Task IfGetGitHubReposCall_ThrowsPlainException_GetPublicGhUserReposShouldHandleAndThrow()
        {
            // Arrange
            var mockHttpClientProvider = new Mock <IHttpClientProvider>();

            mockHttpClientProvider.Setup(o => o.GetHttpClientInstance()).Returns(new HttpClient());

            var mockHCAuthConfigr = new Mock <IHttpClientAuthorizeConfigurator>();

            mockHCAuthConfigr.Setup(o => o.AddBasicAuthorizationHeaderValue(
                                        It.IsAny <HttpClient>(),
                                        It.IsAny <string>(),
                                        It.IsAny <string>())).Returns(true);

            var mockGHReposSvc = new Mock <IGitHubRepos>();

            // will be calling ghRepos.GetGitHubReposAsync(httpClient, ghUsername);
            // The method will return an empty collection if there are any
            // problems, or no public repos are found, so set it up to return
            // a List containing a single item.
            mockGHReposSvc.Setup(o => o.GetGitHubReposAsync(
                                     It.IsAny <HttpClient>(),
                                     It.IsAny <string>())).ThrowsAsync(new Exception());

            var mockGHPRsSvc = new Mock <IGitHubPullReqs>();

            // Act
            GitHubApiCallServices apiCallServices = new GitHubApiCallServices(
                mockHttpClientProvider.Object,
                mockHCAuthConfigr.Object,
                mockGHReposSvc.Object,
                mockGHPRsSvc.Object,
                mockCredentialsReader.Object);

            var taskOfListOfGhUserRepos =
                await apiCallServices.GetPublicGhUserReposByUsername("github");

            // should have thrown
        }