public async Task ReadByDateAndUserAsync_Should_Filter_By_UserId() { var teamId = Guid.NewGuid(); var userId1 = Guid.NewGuid(); var userId2 = Guid.NewGuid(); var reportDate = new DateTime(2019, 1, 14); var reportDateItemIdentifier = new ReportDateItemIdentifier { TeamId = teamId, Date = reportDate, UserId = userId1 }; var reportTask1 = new ReportTask { Id = Guid.NewGuid(), CurrentState = "some state", Problems = "some problems", Url = "some url", Theme = "some theme", IsPublic = true, DateItemIdentifier = reportDateItemIdentifier }; var reportTask2 = new ReportTask { Id = Guid.NewGuid(), CurrentState = "some state2", Problems = "some problems2", Url = "some url2", Theme = "some theme2", IsPublic = true, DateItemIdentifier = new ReportDateItemIdentifier { Date = reportDateItemIdentifier.Date, UserId = userId2, TeamId = reportDateItemIdentifier.TeamId } }; var reportTask3 = new ReportTask { Id = Guid.NewGuid(), CurrentState = "some state3", Problems = "some problems", Url = "some url3", Theme = "some theme3", IsPublic = true, DateItemIdentifier = reportDateItemIdentifier }; await repository.SaveAsync(reportTask1).ConfigureAwait(false); await repository.SaveAsync(reportTask2).ConfigureAwait(false); await repository.SaveAsync(reportTask3).ConfigureAwait(false); var readedTask = await repository.ReadByDateAndUserAsync(reportDateItemIdentifier, true).ConfigureAwait(false); readedTask.Should().BeEquivalentTo(new List <ReportTask> { reportTask1, reportTask3 }); }
public async Task ReadByDateAndUserAsync_Should_Return_Exactly_Saved_Task() { var teamId = Guid.NewGuid(); var userId = Guid.NewGuid(); var reportDate = new DateTime(2019, 1, 14); var reportDateItemIdentifier = new ReportDateItemIdentifier { TeamId = teamId, Date = reportDate, UserId = userId }; var reportTask = new ReportTask { Id = Guid.NewGuid(), CurrentState = "some state", Problems = "some problems", Url = "some url", Theme = "some theme", IsPublic = true, DateItemIdentifier = reportDateItemIdentifier }; await repository.SaveAsync(reportTask).ConfigureAwait(false); var readedTask = await repository.ReadByDateAndUserAsync(reportDateItemIdentifier, true).ConfigureAwait(false); readedTask.Should().BeEquivalentTo(reportTask); }
public async Task DeleteAsync_Should_Do_Nothing_When_Trying_To_Delete_Absent_Task() { var reportDateItemIdentifier = new ReportDateItemIdentifier { TeamId = Guid.NewGuid(), Date = new DateTime(2019, 1, 14), UserId = Guid.NewGuid() }; var taskId1 = Guid.NewGuid(); var reportTask1 = new ReportTask { Id = taskId1, CurrentState = "some state", Problems = "some problems", Url = "some url", Theme = "some theme", IsPublic = true, DateItemIdentifier = reportDateItemIdentifier }; var reportTask2 = new ReportTask { Id = Guid.NewGuid(), CurrentState = "some state2", Problems = "some problems2", Url = "some url2", Theme = "some theme2", IsPublic = true, DateItemIdentifier = reportDateItemIdentifier }; await repository.SaveAsync(reportTask1).ConfigureAwait(false); await repository.SaveAsync(reportTask2).ConfigureAwait(false); await repository.DeleteAsync(Guid.NewGuid()).ConfigureAwait(false); var readedTask = await repository.ReadByDateAsync(reportDateItemIdentifier.TeamId, reportDateItemIdentifier.Date, true).ConfigureAwait(false); readedTask.Should().BeEquivalentTo(new List <ReportTask> { reportTask1, reportTask2 }); }
public async Task ReadByDateAndUserAsync_Should_Return_Empty_List_If_There_Are_No_Suitable_Tasks() { var reportDateItemIdentifier = new ReportDateItemIdentifier { TeamId = Guid.NewGuid(), Date = new DateTime(2019, 1, 14), UserId = Guid.NewGuid() }; var reportTask1 = new ReportTask { Id = Guid.NewGuid(), CurrentState = "some state", Problems = "some problems", Url = "some url", Theme = "some theme", IsPublic = true, DateItemIdentifier = reportDateItemIdentifier }; var reportTask2 = new ReportTask { Id = Guid.NewGuid(), CurrentState = "some state2", Problems = "some problems2", Url = "some url2", Theme = "some theme2", IsPublic = false, DateItemIdentifier = reportDateItemIdentifier }; await repository.SaveAsync(reportTask1).ConfigureAwait(false); await repository.SaveAsync(reportTask2).ConfigureAwait(false); var readedTask = await repository.ReadByDateAndUserAsync(new ReportDateItemIdentifier { Date = DateTime.Now, UserId = Guid.NewGuid(), TeamId = Guid.NewGuid() }, true).ConfigureAwait(false); readedTask.Should().BeEquivalentTo(EmptyCollection <ReportTask> .List); }
public Task <List <ReportTask> > ReadByDateAndUserAsync(ReportDateItemIdentifier dateItemIdentifier, bool isPublic) { if (dateItemIdentifier == null) { throw new ArgumentNullException(nameof(ReportTask.DateItemIdentifier)); } return(queryExecuter.QueryAsync(async connection => { var dayPeriod = GetFullDayPeriod(dateItemIdentifier.Date); var tasks = (await connection.QueryAsync <ReportTaskStored>(ReadByDateAndUserQuery, new { TeamId = dateItemIdentifier.TeamId, TaskDateStart = dayPeriod.Start, TaskDateEnd = dayPeriod.End, UserId = dateItemIdentifier.UserId, IsPublic = isPublic }).ConfigureAwait(false)) .Select(ReportTaskStoredConverter.ToReportTask) .ToList(); return tasks; })); }
public async Task ReadByDateAsync_Should_Return_Tasks_Of_All_Users_In_Team() { var teamId = Guid.NewGuid(); var userId = Guid.NewGuid(); var reportDate = new DateTime(2019, 1, 14); var reportDateItemIdentifier = new ReportDateItemIdentifier { TeamId = teamId, Date = reportDate, UserId = userId }; var reportTask1 = new ReportTask { Id = Guid.NewGuid(), CurrentState = "some state", Problems = "some problems", Url = "some url", Theme = "some theme", IsPublic = true, DateItemIdentifier = reportDateItemIdentifier }; var reportTask2 = new ReportTask { Id = Guid.NewGuid(), CurrentState = "some state2", Problems = "some problems2", Url = "some url2", Theme = "some theme2", IsPublic = true, DateItemIdentifier = reportDateItemIdentifier }; var reportTask3 = new ReportTask { Id = Guid.NewGuid(), CurrentState = "some state3", Problems = "some problems3", Url = "some url3", Theme = "some theme3", IsPublic = true, DateItemIdentifier = new ReportDateItemIdentifier { Date = reportDateItemIdentifier.Date.AddDays(2), TeamId = reportDateItemIdentifier.TeamId, UserId = reportDateItemIdentifier.UserId } }; var reportTask4 = new ReportTask { Id = Guid.NewGuid(), CurrentState = "some state4", Problems = "some problems4", Url = "some url4", Theme = "some theme4", IsPublic = true, DateItemIdentifier = new ReportDateItemIdentifier { Date = reportDateItemIdentifier.Date, TeamId = reportDateItemIdentifier.TeamId, UserId = Guid.NewGuid() } }; await repository.SaveAsync(reportTask1).ConfigureAwait(false); await repository.SaveAsync(reportTask3).ConfigureAwait(false); await repository.SaveAsync(reportTask2).ConfigureAwait(false); await repository.SaveAsync(reportTask4).ConfigureAwait(false); var readedTask = await repository.ReadByDateAsync(teamId, reportDate, true).ConfigureAwait(false); readedTask.Should().BeEquivalentTo(new List <ReportTask> { reportTask1, reportTask2, reportTask4 }); }