public async Task Create_ValidConditions_ReturnsGitHubPullDogRepositoryClientWithProperParameters() { //Arrange var fakeGitHubClientFactory = Substitute.For <IGitHubClientFactory>(); var fakeGitHubClient = await fakeGitHubClientFactory.CreateInstallationClientAsync(1337); fakeGitHubClient .PullRequest .Get(2, 1) .Returns(new PullRequest()); var factory = new GitHubPullDogRepositoryClientFactory( fakeGitHubClientFactory); //Act var client = await factory.CreateAsync(new PullDogPullRequest() { Handle = "1", PullDogRepository = new PullDogRepository() { Handle = "2", GitHubInstallationId = 1337, PullDogSettings = new PullDogSettings() } }); //Assert Assert.IsNotNull(client); await fakeGitHubClientFactory .Received() .CreateInstallationClientAsync(1337); }
public async Task Create_NoGitHubInstallationIdFound_ThrowsException() { //Arrange var factory = new GitHubPullDogRepositoryClientFactory( Substitute.For <IGitHubClientFactory>()); //Act var exception = await Assert.ThrowsExceptionAsync <InvalidOperationException>(async() => await factory.CreateAsync(new PullDogPullRequest() { PullDogRepository = new PullDogRepository() { GitHubInstallationId = null, PullDogSettings = new PullDogSettings() } })); //Assert Assert.IsNotNull(exception); }