public async Task NewIssue_CallsGitHubApi() { // Arrange NewIssueCommand command = new NewIssueCommand(_gitHubClient.Object, _discoveryService.Object, _reporter.Object); command.Title = NewIssueTitle; // Act await command.OnExecuteAsync(NullConsole.Singleton); // Assert _issuesClient.Verify(client => client.Create(ValidOwner, ValidRepo, It.Is <NewIssue>(issue => issue.Title == NewIssueTitle))); }
public async Task InvalidRepo_ReportsError() { // Arrange NewIssueCommand command = new NewIssueCommand(_gitHubClient.Object, _discoveryService.Object, _reporter.Object); command.Repository = $"{ValidOwner}/{InvalidRepo}"; command.Title = NewIssueTitle; // Act await command.OnExecuteAsync(NullConsole.Singleton); // Assert _reporter.Verify(r => r.Error(It.IsAny <string>()), Times.Once()); }
public async Task NotInARepoFolder_ReportsError() { // Arrange _discoveryService.Setup(service => service.DiscoverInCurrentDirectory()) .Returns(() => null); NewIssueCommand command = new NewIssueCommand(_gitHubClient.Object, _discoveryService.Object, _reporter.Object); command.Title = NewIssueTitle; // Act await command.OnExecuteAsync(NullConsole.Singleton); // Assert _reporter.Verify(r => r.Error(It.IsAny <string>()), Times.Once()); }
public async Task InvalidAssignee_ReportsError() { // Arrange NewIssueCommand command = new NewIssueCommand(_gitHubClient.Object, _discoveryService.Object, _reporter.Object); command.Title = NewIssueTitle; command.Assign = new List <string> { InvalidUser }; // Act await command.OnExecuteAsync(NullConsole.Singleton); // Assert _reporter.Verify(r => r.Error(It.IsAny <string>()), Times.Once()); }
public async Task Labels_PassedToGitHub() { // Arrange NewIssueCommand command = new NewIssueCommand(_gitHubClient.Object, _discoveryService.Object, _reporter.Object); command.Title = NewIssueTitle; command.Label = new List <string> { "label1", "label2" }; // Act await command.OnExecuteAsync(NullConsole.Singleton); // Assert _issuesClient.Verify(client => client.Create(ValidOwner, ValidRepo, It.Is <NewIssue>(issue => issue.Labels.Contains("label1") && issue.Labels.Contains("label2")))); }
public async Task ValidAssignee_PassedToGitHub() { // Arrange NewIssueCommand command = new NewIssueCommand(_gitHubClient.Object, _discoveryService.Object, _reporter.Object); command.Title = NewIssueTitle; command.Assign = new List <string> { ValidUser1, ValidUser2 }; // Act await command.OnExecuteAsync(NullConsole.Singleton); // Assert _issuesClient.Verify(client => client.Create(ValidOwner, ValidRepo, It.Is <NewIssue>(issue => issue.Assignees.Contains(ValidUser1) && issue.Assignees.Contains(ValidUser2)))); }