Exemple #1
0
        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> >());
        }