public void Initialize() { FakeScheduledTask scheduledTask = new FakeScheduledTask(); this.Repository.ScheduledTasks.Add(scheduledTask); this.DateTimeProvider.UtcNow = DateTime.UtcNow; this.Scheduler.Initialize(); scheduledTask.Schedule.AssertMethodCallOnceWithArguments(s => s.CalculateNextExecutionTime(this.DateTimeProvider.UtcNow)); }
public void ProcessScheduledTask() { FakeScheduledTask scheduledTask = new FakeScheduledTask(); this.Repository.ScheduledTasks.Add(scheduledTask); this.DateTimeProvider.UtcNow = DateTime.UtcNow.AddMinutes(-1); scheduledTask.Schedule.PredefineMethodCall( s => s.CalculateNextExecutionTime(this.DateTimeProvider.UtcNow), () => scheduledTask.Schedule.NextExecutionTimeUtc = DateTime.UtcNow); this.Scheduler.Initialize(); scheduledTask.Schedule.RecordedMethodCalls.Clear(); this.DateTimeProvider.UtcNow = DateTime.UtcNow.AddMinutes(1); scheduledTask.PredefineMethodCall(s => s.PrepareNextTask(), () => { scheduledTask.NextTask = new FakeTask(); scheduledTask.NextTaskPriority = TaskPriority.Low; scheduledTask.NextTaskSummary = new StringTaskSummary("Hello"); }); /* scheduledTask.Schedule.PredefineMethodCall( * s => s.CalculateNextExecutionTime(this.DateTimeProvider.UtcNow), * () => scheduledTask.Schedule.NextExecutionTimeUtc = DateTime.UtcNow); */ this.Scheduler.Process(); scheduledTask.AssertMethodCallOnce(s => s.PrepareNextTask()); this.TaskProcessorFacade.AssertMethodCallOnceWithArguments(f => f.SubmitTask(scheduledTask.NextTask, scheduledTask.NextTaskSummary, scheduledTask.NextTaskPriority)); scheduledTask.Schedule.AssertMethodCallOnceWithArguments(s => s.CalculateNextExecutionTime(this.DateTimeProvider.UtcNow)); }