public TestingBatchEngineTests() { _testingBatchStore = Substitute.For <ITestingBatchStore>(); _dateSimulationService = Substitute.For <IDateSimulationService>(); var dependencyResolver = Substitute.For <IDependencyResolver>(); _engine = new TestingBatchEngine(_testingBatchStore, _dateSimulationService, dependencyResolver); }
public async Task Send_Emails() { var eninge = new TestingBatchEngine(_store, _dateSimulationService, _dependencyResolver); var emails = new List <string> { "*****@*****.**", "*****@*****.**" }; //Call some method that schedules work await _emailScheduler.SendEmailsAsync(emails); //Should not have received any calls _emailSender.DidNotReceive().SendEmail(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>()); //Simulate that 8 hours has passed await eninge.AdvanceToDateAsync(_dateSimulationService.GetNow().AddHours(8)); //Assert that emails have been sent _emailSender.Received(1).SendEmail("*****@*****.**", "*****@*****.**", "Hello world!"); _emailSender.Received(1).SendEmail("*****@*****.**", "*****@*****.**", "Hello world!"); }