Example #1
0
        public async Task getissues_query_returns_empty_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 GetIssues(projectId);

            // Check if exception is thrown

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

            requestResult.Should().NotThrow();

            var result = await requestResult();

            result.Should().BeEmpty();
        }
Example #2
0
 public Task <IReadOnlyList <IssueViews.IssueView> > Handle(GetIssues message, CancellationToken cancellationToken)
 {
     return(repository
            .GetAll()
            .ProjectTo <IssueViews.IssueView>()
            .ToListAsync());
 }
Example #3
0
 public Task <IReadOnlyList <IssueViews.IssueView> > Handle(GetIssues message, CancellationToken cancellationToken)
 {
     return(repository
            .Query()
            .ProjectTo <IssueViews.IssueView>(configurationProvider)
            .ToListAsync());
 }
Example #4
0
        public async Task <IReadOnlyList <IssueViews.IssueView> > Handle(GetIssues message, CancellationToken cancellationToken)
        {
            var result = await repository
                         .Query()
                         .ToListAsync(token: cancellationToken);

            return(result.AsQueryable()
                   .ProjectTo <IssueViews.IssueView>(configurationProvider)
                   .ToList());
        }
Example #5
0
        public async Task getissues_query_returns_empty_when_project_has_no_issues()
        {
            var projectId = "projectKey";

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

            var query = new GetIssues(projectId);

            // Check if exception is thrown

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

            requestResult.Should().NotThrow();

            var result = await requestResult();

            result.Should().BeEmpty();
        }
Example #6
0
        public async Task getissues_query_succeeds_when_a_issue_exists()
        {
            var projectId   = "projectKey";
            var epicId      = "epicKey";
            var issueId     = "issueKey";
            var issue2Id    = "issueKey2";
            var sprintId    = string.Empty;
            var title       = "Title";
            var description = "description";
            var type        = IssueType.Story;
            var status      = IssueStatus.TODO;
            var storypoints = 0;

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

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

            await _issuesMongoDbFixture.InsertAsync(issue2.AsDocument());

            var query = new GetIssues(projectId: projectId);

            // Check if exception is thrown

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

            requestResult.Should().NotThrow();

            var result = await requestResult();

            var issueDtos = result as IssueDto[] ?? result.ToArray();

            issueDtos.Should().Contain(i => i.Id == issueId);
            issueDtos.Should().Contain(i => i.Id == issue2Id);
        }
Example #7
0
        public async Task <IEnumerable <IssueDto> > HandleAsync(GetIssues query)
        {
            var documents = _issueRepository.Collection.AsQueryable();

            if (query.ProjectId == null)
            {
                return(Enumerable.Empty <IssueDto>());
            }

            var project = await _projectRepository.GetAsync(query.ProjectId);

            if (project == null)
            {
                return(Enumerable.Empty <IssueDto>());
            }

            string[] sprintIssueIds = null;
            if (query.HasSprint != null)
            {
                sprintIssueIds = await _sprintsApiHttpClient.IssuesWithoutSprintForProject(query.ProjectId);

                if (sprintIssueIds == null)
                {
                    return(Enumerable.Empty <IssueDto>());
                }
            }

            var filter = new Func <IssueDocument, bool>(p =>
                                                        p.ProjectId == project.Id &&
                                                        (query.Type == null || p.Type == query.Type.Value) &&
                                                        (query.IssueIds == null || query.IssueIds.Contains(p.Id)) &&
                                                        (query.HasSprint == null || (query.HasSprint.Value ? !sprintIssueIds !.Contains(p.Id) : sprintIssueIds !.Contains(p.Id))));

            var issues = documents.Where(filter).ToList();

            return(issues.Select(p => p.AsDto()));
        }
Example #8
0
 public Task <IReadOnlyList <IssueView> > Handle(GetIssues message, CancellationToken cancellationToken)
 {
     return(repository
            .Query()
            .ToListAsync(cancellationToken));
 }
Example #9
0
 public Task <IReadOnlyList <IssueView> > Get(GetIssues query)
 {
     return(queryBus.SendAsync <GetIssues, IReadOnlyList <IssueView> >(query));
 }
Example #10
0
 public Task <IReadOnlyList <IssueView> > Handle(GetIssues request, CancellationToken cancellationToken)
 {
     return(Task.FromResult((IReadOnlyList <IssueView>) new List <IssueView>().AsReadOnly()));
 }
Example #11
0
 public List <IIssueModel> Any(GetIssues request)
 {
     return(workflow.Search(request));
 }
        public async Task <IReadOnlyCollection <IssueListItem> > HandleAsync(GetIssues query)
        {
            var issues = await issueSearcher.GetProjectIssues(query.ProjectId);

            return(issues.Select(x => new IssueListItem(x.Id, x.ProjectId, IssueHelpers.GetIssueType(x), x.Title, x.Description, x.Status, x.Reporter.Id, x.Assignee?.Id)).ToList());
        }