public async Task ScheduleJobsNone()
        {
            List <SchedulerSyncJob> jobs = new List <SchedulerSyncJob>();

            List <SchedulerSyncJob> updatedJobs = await _jobSchedulingService.DistributeJobStartTimesAsync(jobs);

            Assert.AreEqual(updatedJobs.Count, 0);
        }
        public async Task ScheduleJobsWithConcurrency()
        {
            int defaultTenMinuteRuntime     = 600;
            var longerDefaultRuntimeService = new DefaultRuntimeRetrievalService(defaultTenMinuteRuntime);

            JobSchedulerConfig   jobSchedulerConfig   = new JobSchedulerConfig(true, 0, true, false, START_TIME_DELAY_MINUTES, BUFFER_SECONDS, DEFAULT_RUNTIME_SECONDS);;
            JobSchedulingService jobSchedulingService = new JobSchedulingService(
                jobSchedulerConfig,
                _mockSyncJobRepository,
                longerDefaultRuntimeService,
                _mockLoggingRepository
                );

            DateTime dateTimeNow         = DateTime.UtcNow.Date;
            List <SchedulerSyncJob> jobs = CreateSampleSyncJobs(10, 1, dateTimeNow.Date.AddDays(-20), dateTimeNow.Date);

            List <SchedulerSyncJob> updatedJobs = await jobSchedulingService.DistributeJobStartTimesAsync(jobs);

            jobs.Sort();
            updatedJobs.Sort();

            Assert.AreEqual(jobs.Count, updatedJobs.Count);
            Assert.AreEqual(jobs.Count, 10);

            // Check that times are sorted like this with concurrency of 2:
            // 0  2  4  6  8  9
            // 1  3  5  7
            for (int i = 0; i < jobs.Count; i++)
            {
                Assert.AreEqual(jobs[i].TargetOfficeGroupId, updatedJobs[i].TargetOfficeGroupId);
                Assert.IsTrue(jobs[i].StartDate < dateTimeNow);
                if (i < 8)
                {
                    Assert.IsTrue(updatedJobs[i].StartDate >= dateTimeNow.AddSeconds(60 * START_TIME_DELAY_MINUTES +
                                                                                     i / 2 * (defaultTenMinuteRuntime + BUFFER_SECONDS)));
                }
                else
                {
                    Assert.IsTrue(updatedJobs[i].StartDate >= dateTimeNow.AddSeconds(60 * START_TIME_DELAY_MINUTES +
                                                                                     (i - 5) * (defaultTenMinuteRuntime + BUFFER_SECONDS)));
                }
            }
        }