Exemplo n.º 1
0
        public async Task Schedule_NoPropertiesHaveBeenSet_ShouldSetDefaultAndSchedule()
        {
            // Arrange
            var builder = new RecurrentJobBuilder(_jobsAdderMock.Object, JobsCron, typeof(TestReccurrentJob),
                                                  _globalObsoleteInterval);
            var scheduledJob = new JobMetadata();

            _jobsAdderMock.Setup(a => a.AddRecurrentJob(It.IsAny <JobMetadata>()))
            .Returns(Task.CompletedTask)
            .Callback((JobMetadata job) => scheduledJob = job);

            // Act
            await builder.Schedule();

            // Assert
            Assert.Equal(scheduledJob.JobKey, typeof(TestReccurrentJob).Name);
            _jobsAdderMock.Verify(a => a.AddRecurrentJob(It.IsAny <JobMetadata>()), Times.Once);
            _jobsAdderMock.VerifyNoOtherCalls();
        }
Exemplo n.º 2
0
        public async Task Schedule_CorrectCronPassed_ShouldSetRightStartAtAndSchedule()
        {
            // Arrange
            var builder = new RecurrentJobBuilder(_jobsAdderMock.Object, JobsCron, typeof(TestReccurrentJob),
                                                  _globalObsoleteInterval);
            var scheduledJob = new JobMetadata();

            var parsedCron      = CronExpression.Parse(JobsCron, CronFormat.IncludeSeconds);
            var expectedStartAt = parsedCron.GetNextOccurrence(DateTime.UtcNow, TimeZoneInfo.Local);

            _jobsAdderMock.Setup(a => a.AddRecurrentJob(It.IsAny <JobMetadata>()))
            .Returns(Task.CompletedTask)
            .Callback((JobMetadata job) => scheduledJob = job);

            // Act
            await builder.Schedule();

            // Assert
            Assert.Equal(scheduledJob.StartAt, expectedStartAt);
            _jobsAdderMock.Verify(a => a.AddRecurrentJob(It.IsAny <JobMetadata>()), Times.Once);
            _jobsAdderMock.VerifyNoOtherCalls();
        }