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(); }
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()); }