public async Task OpenIssue_UpdatesIssue() { // Arrange var command = new CloseIssueCommand(_gitHubClient.Object, _discoveryService.Object, _reporter.Object) { Issue = $"{ValidOwner}/{ValidRepo}#{ValidIssueNumber}" }; // Act await command.OnExecuteAsync(_console); // Assert _issuesClient.Verify(client => client.Update(ValidOwner, ValidRepo, ValidIssueNumber, It.Is <IssueUpdate>(update => update.State == ItemState.Closed)), Times.Once()); }
public async Task Returns_OK() { // Arrange var command = new CloseIssueCommand(_gitHubClient.Object, _discoveryService.Object, _reporter.Object) { Issue = $"{ValidOwner}/{ValidRepo}#{ValidIssueNumber}" }; // Act var value = await command.OnExecuteAsync(_console); // Assert Assert.Equal(value, ReturnCodes.Ok); }
public async Task ClosedIssue_DoesNotUpdateIssue() { // Arrange var command = new CloseIssueCommand(_gitHubClient.Object, _discoveryService.Object, _reporter.Object) { Issue = $"{ValidOwner}/{ValidRepo}#{ClosedIssueNumber}" }; // Act await command.OnExecuteAsync(_console); // Assert _issuesClient.Verify(client => client.Update(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <IssueUpdate>()), Times.Never()); }
public async Task ClosedIssue_ReportsWarning() { // Arrange var command = new CloseIssueCommand(_gitHubClient.Object, _discoveryService.Object, _reporter.Object) { Issue = $"{ValidOwner}/{ValidRepo}#{ClosedIssueNumber}" }; // Act await command.OnExecuteAsync(_console); // Assert _reporter.Verify(r => r.Warn(It.Is <string>(s => s == "Issue jerriep/github-issues-cli#101 is already closed. No action taken.")), Times.Once()); }
public async Task PassingComment_AddsComment() { // Arrange var command = new CloseIssueCommand(_gitHubClient.Object, _discoveryService.Object, _reporter.Object) { Issue = $"{ValidOwner}/{ValidRepo}#{ValidIssueNumber}", Comment = ValidComment }; // Act await command.OnExecuteAsync(_console); // Assert _issueCommentsClient.Verify(client => client.Create(ValidOwner, ValidRepo, ValidIssueNumber, ValidComment), Times.Once()); }
public async Task ValidationException_ReturnsError() { // Arrange _discoveryService.Setup(service => service.DiscoverInCurrentDirectory()) .Returns(() => null); var command = new CloseIssueCommand(_gitHubClient.Object, _discoveryService.Object, _reporter.Object) { Issue = $"{ValidOwner}/{InvalidRepo}#{ValidIssueNumber}" }; // Act var value = await command.OnExecuteAsync(_console); // Assert Assert.Equal(value, ReturnCodes.Error); }
public async Task ValidationException_ReportsError() { // Arrange _discoveryService.Setup(service => service.DiscoverInCurrentDirectory()) .Returns(() => null); var command = new CloseIssueCommand(_gitHubClient.Object, _discoveryService.Object, _reporter.Object) { Issue = $"{ValidOwner}/{InvalidRepo}#{ValidIssueNumber}" }; // Act await command.OnExecuteAsync(_console); // Assert _reporter.Verify(r => r.Error(It.IsAny <string>()), Times.Once()); }