public async Task Handler_Gets_Monthly_Stats() { var currentContract = new Contract { Id = 1, IsCurrent = true, UserId = 1 }; var user = new AppUser { Id = 1, Contracts = new List <Contract>() { currentContract } }; var workMonthCalculation = new RecalculateMyMonthsHandler(new AppDbContext(_options), new LoggerMock <RecalculateMyMonthsHandler>()); await workMonthCalculation.Handle(new RecalculateMyMonthsRequest { User = user, CurrentContract = currentContract }, CancellationToken.None); using (var context = new AppDbContext(_options)) { var workdays = await context.WorkDays.Include(x => x.Contract).ToListAsync(); } var request = new GetWorkMonthsRequest() { User = user, CurrentContract = currentContract }; var response = await _testObject.Handle(request, CancellationToken.None); response.Months.Count.Should().Be(15); response.Months.Sum(x => x.TotalHours).Should().Be(2656.3); }
public RecalculateMyMonthsTests() { _options = new DbContextOptionsBuilder <AppDbContext>().UseInMemoryDatabase(Guid.NewGuid().ToString()).Options; using (var context = new AppDbContext(_options)) { context.Users.Add(new AppUser { Id = 1 }); context.Contracts.Add(new Contract { Id = 1, Employer = "e", Name = "e", HoursPerWeek = 40, IsCurrent = true, UserId = 1 }); context.WorkMonths.Add(new WorkMonth { Id = 1, Year = 2021, Month = 2, ContractId = 1 }); context.SaveChanges(); } _testObject = new RecalculateMyMonthsHandler(new AppDbContext(_options), Substitute.For <ILogger <RecalculateMyMonthsHandler> >()); }