示例#1
0
        public async Task GetFinishedJobRuns_OutsideTimeWindow_ReturnsNoFinishedJobs()
        {
            // Arrange
            DateTimeOffset startWindow = BogusGenerator.Date.RecentOffset();
            DateTimeOffset endWindow   = BogusGenerator.Date.SoonOffset();

            IEnumerable <Run> includedRuns = CreateRandomRuns(startWindow, endWindow);
            IEnumerable <Run> tooLateRuns  = CreateRandomRuns(endWindow, BogusGenerator.Date.FutureOffset());
            IEnumerable <Run> allRuns      = includedRuns.Concat(tooLateRuns);
            IEnumerable <Job> jobs         = includedRuns.Select(r => new Job
            {
                JobId    = r.JobId,
                Settings = new JobSettings {
                    Name = Guid.NewGuid().ToString()
                }
            }).ToArray();

            DatabricksClient client = DatabricksClientFactory.Create(allRuns, jobs);
            var provider            = new DatabricksInfoProvider(client, NullLogger.Instance);

            // Act
            IEnumerable <JobRun> finishedJobs = await provider.GetFinishedJobRunsAsync(BogusGenerator.Date.PastOffset(), startWindow);

            // Assert
            Assert.Empty(finishedJobs);
        }
示例#2
0
        public async Task GetFinishedJobRuns_WithEndTimeLessThanStartTime_Throws()
        {
            // Arrange
            DateTimeOffset   startWindow = BogusGenerator.Date.SoonOffset();
            DateTimeOffset   endWindow   = BogusGenerator.Date.RecentOffset();
            DatabricksClient client      = DatabricksClientFactory.Create(Enumerable.Empty <Run>(), Enumerable.Empty <Job>());
            var provider = new DatabricksInfoProvider(client, NullLogger.Instance);

            // Act / Assert
            await Assert.ThrowsAnyAsync <ArgumentException>(() => provider.GetFinishedJobRunsAsync(startWindow, endWindow));
        }
示例#3
0
        public async Task GetFinishedJobRuns_WithNoAvailableFinishedJobs_ReturnsNoFinishedJobs()
        {
            // Arrange
            DateTimeOffset startWindow = BogusGenerator.Date.RecentOffset();
            DateTimeOffset endWindow   = BogusGenerator.Date.SoonOffset();

            DatabricksClient client = DatabricksClientFactory.Create(Enumerable.Empty <Run>(), Enumerable.Empty <Job>());
            var provider            = new DatabricksInfoProvider(client, NullLogger.Instance);

            // Act
            IEnumerable <JobRun> finishedJobs = await provider.GetFinishedJobRunsAsync(startWindow, endWindow);

            // Assert
            Assert.Empty(finishedJobs);
        }
示例#4
0
        public async Task GetFinishedJobRuns_WithinTimeWindow_OnlyReturnsFinishedJobsWithinTheTimeWindow()
        {
            // Arrange
            DateTimeOffset startWindow = BogusGenerator.Date.RecentOffset();
            DateTimeOffset endWindow   = BogusGenerator.Date.SoonOffset();

            IEnumerable <Run> includedRuns = CreateRandomRuns(startWindow, endWindow);
            IEnumerable <Run> tooLateRuns  = CreateRandomRuns(endWindow, BogusGenerator.Date.FutureOffset());
            IEnumerable <Run> allRuns      = includedRuns.Concat(tooLateRuns);
            IEnumerable <Job> jobs         = includedRuns.Select(r => new Job
            {
                JobId    = r.JobId,
                Settings = new JobSettings {
                    Name = Guid.NewGuid().ToString()
                }
            }).ToArray();

            DatabricksClient client = DatabricksClientFactory.Create(allRuns, jobs);
            var provider            = new DatabricksInfoProvider(client, NullLogger.Instance);

            // Act
            IEnumerable <JobRun> finishedJobs = await provider.GetFinishedJobRunsAsync(startWindow, endWindow);

            // Assert
            Assert.NotNull(finishedJobs);
            Assert.NotEmpty(finishedJobs);
            Assert.Equal(finishedJobs.Count(), includedRuns.Count());
            Assert.All(finishedJobs, job =>
            {
                Assert.Contains(includedRuns, run => run.RunId == job.Run.RunId);
                Assert.DoesNotContain(tooLateRuns, run => run.RunId == job.Run.RunId);
                Job expectedJob = Assert.Single(jobs, j => j.Settings.Name == job.JobName);
                Assert.NotNull(expectedJob);
                Assert.Equal(expectedJob.JobId, job.Run.JobId);
            });
        }