public TestingBatchEngineTests()
        {
            _testingBatchStore     = Substitute.For <ITestingBatchStore>();
            _dateSimulationService = Substitute.For <IDateSimulationService>();
            var dependencyResolver = Substitute.For <IDependencyResolver>();

            _engine = new TestingBatchEngine(_testingBatchStore, _dateSimulationService, dependencyResolver);
        }
Example #2
0
        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!");
        }