public async Task get_sprints_query_should_return_empty_when_no_sprints_exist()
        {
            var query = new GetSprints();

            // 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 async Task <IEnumerable <SprintDto> > HandleAsync(GetSprints query)
        {
            var documents = _sprintRepository.Collection.AsQueryable();

            if (string.IsNullOrWhiteSpace(query.ProjectId))
            {
                return(new List <SprintDto>());
            }

            if (!await _projectRepository.ExistsAsync(p => p.Id == query.ProjectId))
            {
                throw new ProjectNotFoundException(query.ProjectId);
            }

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

            var sprintsWithProject = await documents.Where(p => p.ProjectId == project.Id).ToListAsync();

            return(sprintsWithProject.Select(p => p.AsDto()));
        }
        public async Task get_sprints_query_succeeds_when_a_sprint_exists()
        {
            var sprintId    = "sprintKey" + Guid.NewGuid();
            var sprint2Id   = "sprint2Key" + Guid.NewGuid();
            var title       = "Title";
            var description = "description";
            var projectId   = "projectKey" + Guid.NewGuid();
            var createdAt   = DateTime.Now;
            var startedAt   = DateTime.MinValue;
            var startDate   = DateTime.MinValue;
            var endDate     = DateTime.MaxValue;
            var endedAt     = DateTime.MaxValue;

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

            var sprint  = new Sprint(sprintId, title, description, projectId, null, createdAt, startedAt, startDate, endDate, endedAt);
            var sprint2 = new Sprint(sprint2Id, title, description, projectId, null, createdAt, startedAt, startDate, endDate, endedAt);

            await _sprintMongoDbFixture.InsertAsync(sprint.AsDocument());

            await _sprintMongoDbFixture.InsertAsync(sprint2.AsDocument());


            var query = new GetSprints(projectId);

            // Check if exception is thrown

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

            requestResult.Should().NotThrow();

            var result = await requestResult();

            var sprintDtos = result as SprintDto[] ?? result.ToArray();

            sprintDtos.Should().Contain(i => i.Id == sprintId);
            sprintDtos.Should().Contain(i => i.Id == sprint2Id);
        }
        public async Task <IReadOnlyCollection <SprintListItem> > HandleAsync(GetSprints query)
        {
            var sprints = await sprintSearcher.GetSprints(query.ProjectId, query.NotFinishedOnly);

            return(sprints.Select(x => new SprintListItem(x.Id, x.Name, x.Start, x.End, x.Status)).ToList());
        }