public async Task getissue_query_returns_null_when_project_does_not_exist()
        {
            var projectId   = "projectKey";
            var epicId      = "epicKey";
            var issueId     = "issueKey";
            var sprintId    = string.Empty;
            var title       = "Title";
            var description = "description";
            var type        = IssueType.Story;
            var status      = IssueStatus.TODO;
            var storypoints = 0;

            var issue = new Issue(issueId, type, status, title, description, storypoints, projectId, epicId, sprintId, null, null, DateTime.Now);
            await _issuesMongoDbFixture.InsertAsync(issue.AsDocument());

            var query = new GetIssue(issueId);

            // Check if exception is thrown

            var requestResult = _queryHandler
                                .Awaiting(c => c.HandleAsync(query));

            requestResult.Should().NotThrow();

            var result = await requestResult();

            result.Should().BeNull();
        }
示例#2
0
        public object Any(GetIssue request)
        {
            var issue = _model.GetIssue(request.Id);

            return(new GetIssueResponse
            {
                Description = issue.Description,
                State = (int)(issue.State),
                Comments = issue.Comments.Select(c => c.Text).ToArray(),
                Associations = issue.AssocIssues.Select(a => a.Id).ToArray()
            });
        }
        public async Task <IssueResponse> HandleAsync(GetIssue query)
        {
            var issue = await issueRepository.GetAsync(query.IssueId);

            var issueType  = IssueHelpers.GetIssueType(issue);
            var usersNames = await userSearcher.GetUsers(issue.Comments.Select(x => x.MemberId).ToList());

            var issueResponse = new IssueResponse(issue.Id, issue.ProjectId, issue.SprintId, issueType, issue.Title, issue.Description,
                                                  issue.Status, issue.Reporter.Id, issue.Reporter.GetFullName(), issue.Reporter.Email, issue.Assignee?.Id,
                                                  issue.Comments.Select(x => new CommentResponse(x.MemberId, usersNames[x.MemberId], x.Content, x.AddedAt)).ToList(),
                                                  issue.Labels.Select(x => new LabelResponse(x.Id, x.Name, x.Description)).ToList(), issue.Version);

            var linkedIssues = new List <LinkedIssue>();

            if (issue is Storage.Models.Task)
            {
                var issues = await issueSearcher.GetIssuesRelatedToTask(issue.Id);

                linkedIssues = issues.Select(x => new LinkedIssue(x.Id, x.Title, IssueHelpers.GetIssueType(x))).ToList();
            }
            else if (issue is Storage.Models.Nfr)
            {
                var issues = await issueSearcher.GetIssuesRelatedToNfr(issue.Id);

                linkedIssues = issues.Select(x => new LinkedIssue(x.Id, x.Title, IssueHelpers.GetIssueType(x))).ToList();
            }
            else if (issue is Storage.Models.Subtask)
            {
                var parentIssue = await issueSearcher.GetParentIssueToSubtask(issue.Id);

                issueResponse.SetLinkedTo(parentIssue.Id, parentIssue.Title, IssueType.Task);
            }
            else
            {
                var parentIssue = await issueSearcher.GetParentIssueToBug(issue.Id);

                if (parentIssue != null)
                {
                    issueResponse.SetLinkedTo(parentIssue.Id, parentIssue.Title, IssueHelpers.GetIssueType(parentIssue));
                }
            }


            if (linkedIssues.Count != 0)
            {
                issueResponse.SetLinkedIssues(linkedIssues);
            }

            return(issueResponse);
        }
        public async Task getissue_query_returns_null_when_no_issue_with_key_exists()
        {
            var projectId = "projectKey";
            var issueId   = "issueKey";

            var project = new Project(projectId);
            await _projectsMongoDbFixture.InsertAsync(project.AsDocument());

            var query = new GetIssue(issueId);

            // Check if exception is thrown

            var requestResult = _queryHandler
                                .Awaiting(c => c.HandleAsync(query));

            requestResult.Should().NotThrow();

            var result = await requestResult();

            result.Should().BeNull();
        }
示例#5
0
 public Task <IssueView> Handle(GetIssue message, CancellationToken cancellationToken)
 {
     return(repository.GetByIdAsync(message.Id, cancellationToken));
 }
示例#6
0
        public async Task <IssueViews.IssueView> Handle(GetIssue message, CancellationToken cancellationToken)
        {
            var entity = await repository.GetById(message.Id, cancellationToken);

            return(mapper.Map <IssueViews.IssueView>(entity));
        }
示例#7
0
 public IIssueModel Any(GetIssue request)
 {
     return(workflow.Get(request.ID));
 }