public async Task FindAsync_FilterTests(bool isAdmin, DateTime?minDate, DateTime?maxDate, bool sameUser, int expectedResultsCount) { // Arrange using var dbContext = CreateDbContext(); var user = await CreateTestUserAsync(dbContext); var anotherUser = await CreateTestUserAsync(dbContext); await CreateWorkEntry(dbContext, user.Id, entry => entry.Date = new DateTime(2020, 3, 5)); await CreateWorkEntry(dbContext, user.Id, entry => entry.Date = new DateTime(2020, 3, 10)); await CreateWorkEntry(dbContext, user.Id, entry => entry.Date = new DateTime(2020, 3, 17)); await CreateWorkEntry(dbContext, anotherUser.Id, entry => entry.Date = new DateTime(2020, 3, 15)); var userContextAccessorMock = new Mock <IUserContextAccessor>(); userContextAccessorMock.Setup(m => m.GetUserId()).Returns(user.Id); userContextAccessorMock.Setup(m => m.IsAdminUser()).Returns(isAdmin); var workEntriesService = new WorkEntriesService(dbContext, Mock.Of <IDbErrorHandler>(), userContextAccessorMock.Object); // Act var entries = await workEntriesService.FindAsync(sameUser?user.Id : anotherUser.Id, minDate, maxDate); // Assert Assert.Equal(expectedResultsCount, entries.Count); }
public async Task FindAsync_EntriesExist_ReturnsWorkEntry() { // Arrange using var dbContext = CreateDbContext(); var user = await CreateTestUserAsync(dbContext); var entry = await CreateWorkEntry(dbContext, user.Id); var entry1 = await CreateWorkEntry(dbContext, user.Id, entry => entry.Date = DateTime.Now.AddDays(-1)); var userContextAccessorMock = new Mock <IUserContextAccessor>(); userContextAccessorMock.Setup(m => m.GetUserId()).Returns(user.Id); userContextAccessorMock.Setup(m => m.IsAdminUser()).Returns(false); var workEntriesService = new WorkEntriesService(dbContext, Mock.Of <IDbErrorHandler>(), userContextAccessorMock.Object); // Act var entries = await workEntriesService.FindAsync(user.Id); // Assert Assert.Collection(entries, resultEntry => AssertEqual(entry1, resultEntry), resultEntry => AssertEqual(entry, resultEntry) ); }