public async Task CompleteJobAsyncWorksCorrectly(ServiceFrequency serviceFrequency, int expectedJobsCount) { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options; var dbContext = new ApplicationDbContext(options); var id = Guid.NewGuid().ToString(); var job = new Job() { Id = id, }; dbContext.Add(job); await dbContext.SaveChangesAsync(); var dateTimeProviderMock = new Mock <IDateTimeProvider>(); dateTimeProviderMock.Setup(d => d.GetUtcNow()).Returns(new DateTime(2020, 5, 4, 12, 30, 0)); var repository = new EfDeletableEntityRepository <Job>(dbContext); var service = new JobsService.JobsService(repository, dateTimeProviderMock.Object); await service.CompleteJobAsync(id, Guid.NewGuid().ToString(), serviceFrequency, new DateTime(2020, 5, 4, 10, 0, 0), new DateTime(2020, 5, 4, 12, 0, 0)); var result = dbContext.Jobs.Count(); Assert.Equal(expectedJobsCount, result); }
public async Task CreateAsyncWorksCorrectly(DateTime currentDate, ServiceFrequency serviceFrequency, DateTime appointmentStartDate, DateTime appointmentEndDate, DateTime expectedStartDate, DateTime expectedFinishDate) { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options; var dbContext = new ApplicationDbContext(options); var dateTimeProviderMock = new Mock <IDateTimeProvider>(); dateTimeProviderMock.Setup(d => d.GetUtcNow()).Returns(currentDate); var repository = new EfDeletableEntityRepository <Job>(dbContext); var service = new JobsService.JobsService(repository, dateTimeProviderMock.Object); await service.CreateAsync(Guid.NewGuid().ToString(), serviceFrequency, appointmentStartDate, appointmentEndDate); var result = dbContext.Jobs.FirstOrDefault(); Assert.Equal(expectedStartDate, result.StartDate); Assert.Equal(expectedFinishDate, result.FinishDate); }