Example #1
0
        public void NegotiateCreateIssueParametersReturnsFailureForMissingProject(CreateIssueOptions options, string defaultIssuesLabel)
        {
            options.Project = "";
            var sut = new IssueParametersNegotiator();

            sut.NegotiateCreateIssueParameters(options, "", defaultIssuesLabel).IsFailure.Should().BeTrue();
        }
Example #2
0
        public void NegotiateCreateIssueParametersTakesLabelsFromOptions(CreateIssueOptions options, string defaultProject, string defaultIssuesLabel)
        {
            var sut = new IssueParametersNegotiator();

            sut.NegotiateCreateIssueParameters(options, defaultProject, defaultIssuesLabel).
            Value.Labels.
            Should().
            BeEquivalentTo(options.Labels);
        }
Example #3
0
        public void NegotiateCreateIssueParametersTakesNotProvidedLabelsFromDefault(
            CreateIssueOptions options,
            string defaultProject,
            string defaultIssuesLabel)
        {
            options.Labels = new string[] { };

            var sut = new IssueParametersNegotiator();

            sut.NegotiateCreateIssueParameters(options, defaultProject, defaultIssuesLabel).
            Value.Labels.
            Should().
            BeEquivalentTo(defaultIssuesLabel);
        }
Example #4
0
        public void NegotiateCreateIssueParametersCreatesParametersFromOptions(CreateIssueOptions options, string defaultProject, string defaultIssuesLabel)
        {
            var sut = new IssueParametersNegotiator();

            sut.NegotiateCreateIssueParameters(options, defaultProject, defaultIssuesLabel).Value.
            Should().
            Match <CreateIssueParameters>(o =>
                                          o.Title == options.Title &&
                                          o.Description == options.Description &&
                                          o.Project == options.Project &&
                                          o.Assignee == options.Assignee &&
                                          o.AssignedToCurrentUser == options.AssignMyself &&
                                          o.Labels.SequenceEqual(options.Labels));
        }
        public async Task Visit(CreateIssueOptions options)
        {
            if (!ValidateConfiguration())
            {
                return;
            }

            var parameters = _parametersHandler.NegotiateCreateIssueParameters(options);

            if (parameters.IsSuccess)
            {
                await _issuesHandler.CreateIssue(parameters.Value);
            }
            else
            {
                ShowError(parameters);
            }
        }
        public Result <CreateIssueParameters> NegotiateCreateIssueParameters(
            CreateIssueOptions options,
            string defaultProject,
            string defaultIssuesLabel)
        {
            var project = GetProject(options, defaultProject);

            if (project.IsFailure)
            {
                return(Fail <CreateIssueParameters>(project));
            }

            return(Ok(new CreateIssueParameters(
                          options.Title,
                          options.Description,
                          project.Value,
                          options.Assignee)
            {
                AssignedToCurrentUser = options.AssignMyself,
                Labels = NegotiateLabels(options.Labels, defaultIssuesLabel)
            }));
        }
Example #7
0
 public Result <CreateIssueParameters> NegotiateCreateIssueParameters(CreateIssueOptions options)
 {
     return(_issueParametersNegotiator.NegotiateCreateIssueParameters(
                options, _appSettings.DefaultProject,
                _appSettings.DefaulIssuesLabel));
 }