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); }
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. }
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 }