public async Task ForRepo_PassesState(ItemStateFilter state) { ListIssuesCommand command = new ListIssuesCommand(_gitHubClient.Object, _discoveryService.Object, _reporter.Object); command.State = state; // Act await command.OnExecuteAsync(NullConsole.Singleton); // Assert _issuesClient.Verify(client => client.GetAllForRepository(ValidOwner, ValidRepo, It.Is <RepositoryIssueRequest>(request => request.State == state)), Times.Once()); }
public async Task InsideRepoDirectory_QueriesIssuesForRepo() { // Arrange ListIssuesCommand command = new ListIssuesCommand(_gitHubClient.Object, _discoveryService.Object, _reporter.Object); command.Repository = $"{ValidOwner}/{ValidRepo}"; // Act await command.OnExecuteAsync(NullConsole.Singleton); // Assert _issuesClient.Verify(client => client.GetAllForRepository(ValidOwner, ValidRepo, It.IsAny <RepositoryIssueRequest>()), Times.Once()); }
public async Task InvalidUser_ReportsError() { // Arrange ListIssuesCommand command = new ListIssuesCommand(_gitHubClient.Object, _discoveryService.Object, _reporter.Object); command.User = InvalidUser; // Act await command.OnExecuteAsync(_console.Object); // Assert _reporter.Verify(r => r.Error(It.IsAny <string>()), Times.Once()); }
public async Task NoRepo_QueriesIssuesForCurrentUser() { // Arrange _discoveryService.Setup(service => service.DiscoverInCurrentDirectory()) .Returns(() => null); ListIssuesCommand command = new ListIssuesCommand(_gitHubClient.Object, _discoveryService.Object, _reporter.Object); // Act await command.OnExecuteAsync(NullConsole.Singleton); // Assert _issuesClient.Verify(client => client.GetAllForCurrent(It.IsAny <IssueRequest>()), Times.Once()); }
public async Task ForRepo_WhenSpecifyingAll_ListForAllUsers() { // Arrange ListIssuesCommand command = new ListIssuesCommand(_gitHubClient.Object, _discoveryService.Object, _reporter.Object); command.All = true; // Act await command.OnExecuteAsync(NullConsole.Singleton); // Assert _issuesClient.Verify(client => client.GetAllForRepository(ValidOwner, ValidRepo, It.Is <RepositoryIssueRequest>(request => request.Assignee == null && request.Creator == null && request.Mentioned == null)), Times.Once()); }
public async Task ForRepo_SetsRelation(IssueRelation relation) { // Arrange ListIssuesCommand command = new ListIssuesCommand(_gitHubClient.Object, _discoveryService.Object, _reporter.Object); command.Relation = relation; // Act await command.OnExecuteAsync(NullConsole.Singleton); // Assert _issuesClient.Verify(client => client.GetAllForRepository(ValidOwner, ValidRepo, It.Is <RepositoryIssueRequest>(request => SetsCorrectRelation(request, relation, ValidCurrentUser))), Times.Once()); }
public async Task NoRepo_PassesRelation(IssueRelation relation, IssueFilter filter) { // Arrange _discoveryService.Setup(service => service.DiscoverInCurrentDirectory()) .Returns(() => null); ListIssuesCommand command = new ListIssuesCommand(_gitHubClient.Object, _discoveryService.Object, _reporter.Object); command.Relation = relation; // Act await command.OnExecuteAsync(NullConsole.Singleton); // Assert _issuesClient.Verify(client => client.GetAllForCurrent(It.Is <IssueRequest>(request => request.Filter == filter)), Times.Once()); }
public async Task NoRepo_WhenSpecifyingAll_ReportsWarning() { // Arrange _discoveryService.Setup(service => service.DiscoverInCurrentDirectory()) .Returns(() => null); ListIssuesCommand command = new ListIssuesCommand(_gitHubClient.Object, _discoveryService.Object, _reporter.Object); command.All = true; // Act await command.OnExecuteAsync(NullConsole.Singleton); // Assert Assert.False(command.All); // -all flag should be reset to false _reporter.Verify(reporter => reporter.Warn(It.IsAny <string>()), Times.Once()); }