コード例 #1
0
        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)));
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        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());
        }
コード例 #4
0
        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());
        }
コード例 #5
0
        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"))));
        }
コード例 #6
0
        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))));
        }