public void CreatingScheduledJobSucceeds() { // Arrange var job = new ScheduledJob() { Crontab = "* * * * *" }; // Act var sut = new ScheduledJobScheduler(job); // Assert Assert.IsTrue(sut.IsValid()); }
public void GetNextScheduleForFiveStarsReturnsCurrentMinute() { // Arrange var scheduledJob = new ScheduledJob() { Crontab = "* * * * *" }; var sut = new ScheduledJobScheduler(scheduledJob); var now = DateTimeOffset.Now; // Act var result = sut.GetNextSchedule(now); // Assert Assert.AreEqual(now.Minute, result.Minute); }
public void IsScheduledToRunForFiveStarsReturnsTrue() { // Arrange var scheduledJob = new ScheduledJob() { Crontab = "* * * * *" }; var sut = new ScheduledJobScheduler(scheduledJob); var now = DateTimeOffset.Now; // Act var result = sut.IsScheduledToRun(now); // Assert Assert.IsTrue(result); }
public void GetNextScheduleForFiveStarsReturnsMinValue() { // Arrange var scheduledJob = new ScheduledJob() { Crontab = "*/5 * * * *" }; var sut = new ScheduledJobScheduler(scheduledJob); var now = new DateTimeOffset(2000, 08, 15, 05, 42, 13, TimeSpan.FromHours(0)); // Act var result = sut.GetNextSchedule(now); // Assert Assert.AreEqual(DateTimeOffset.MinValue, result); }
public ScheduledJobScheduler(ScheduledJob scheduledJob) { Contract.Requires(null != scheduledJob); job = scheduledJob; }
public void IsScheduledToRunSucceeds7() { var now = new DateTimeOffset(2016, 11, 15, 19, 29, 59, 999, DateTimeOffset.Now.Offset); now = new DateTimeOffset(now.Year, now.Month, now.Day, now.Hour, now.Minute, 0, 1, now.Offset); var job = new ScheduledJob() { Crontab = "0 0 0 12 1 ? 2017" }; var sut = new ScheduledJobScheduler(job); // Act Assert.IsFalse(sut.IsCrontabExpression()); Assert.IsTrue(sut.IsQuartzExpression()); var result = sut.IsScheduledToRun(now); // Assert Assert.IsFalse(result); }
public void GetNextScheduleFromQuartzExpressionThatIsWithinThisMinuteSucceeds4() { var withinThisMinute = new DateTimeOffset(2016, 11, 14, 14, 7, 0, 0, DateTimeOffset.Now.Offset); var expected = new DateTimeOffset(2016, 11, 14, 14, 7, 0, 0, withinThisMinute.Offset); var job = new ScheduledJob() { Crontab = "0 07 14 1/1 * ? *" }; var sut = new ScheduledJobScheduler(job); // Act var result = sut.GetNextScheduleFromQuartzExpression(withinThisMinute); // Assert Assert.AreEqual(expected, result); }
public void GetNextScheduleFromQuartzExpressionThatIsNotWithinThisMinuteSucceeds1() { var withinThisMinute = new DateTimeOffset(2016, 11, 14, 8, 17, 35, 123, DateTimeOffset.Now.Offset); var job = new ScheduledJob() { Crontab = "0 0 0 ? 1/1 5#3" }; var sut = new ScheduledJobScheduler(job); // Act var result = sut.GetNextScheduleFromQuartzExpression(withinThisMinute); // Assert Assert.AreEqual(DateTimeOffset.MinValue, result); }
public void GetNextScheduleFromQuartzExpressionSucceeds() { // Arrange var withinThisMinute = DateTimeOffset.Now; var expected = withinThisMinute; expected = expected.AddSeconds(-1 * expected.Second); expected = expected.AddMilliseconds(-1 * expected.Millisecond); var job = new ScheduledJob() { Crontab = "0 0/1 * 1/1 * ? *" }; var sut = new ScheduledJobScheduler(job); // Act var result = sut.GetNextScheduleFromQuartzExpression(withinThisMinute); // Assert Assert.AreNotEqual(DateTimeOffset.MinValue, result); Assert.IsTrue(Math.Floor(Math.Abs((expected - result).TotalMilliseconds)).Equals(0)); }
public void IsValidQuartzExpressionWithValidQuartzExpressionReturnsTrue() { // Arrange var job = new ScheduledJob() { Crontab = "0 0/1 * 1/1 * ? *" }; var sut = new ScheduledJobScheduler(job); // Act var result = sut.IsQuartzExpression(); // Assert Assert.IsTrue(result); }
public void IsValidQuartzExpressionWithInvalidExpressionReturnsFalse() { // Arrange var job = new ScheduledJob() { Crontab = "* 18 * **" }; var sut = new ScheduledJobScheduler(job); // Act var result = sut.IsQuartzExpression(); // Assert Assert.IsFalse(result); }
public void IsValidCrontabExpressionWithValidExpressionReturnsTrue() { // Arrange var job = new ScheduledJob() { Crontab = "* 18 * * *" }; var sut = new ScheduledJobScheduler(job); // Act var result = sut.IsCrontabExpression(); // Assert Assert.IsTrue(result); }
public void GetNextScheduleForFiveOnesReturnsMinValue() { // Arrange var scheduledJob = new ScheduledJob() { Crontab = "1 1 1 1 1" }; var sut = new ScheduledJobScheduler(scheduledJob); var now = DateTimeOffset.Now; // Act var result = sut.GetNextSchedule(now); // Assert Assert.AreEqual(DateTimeOffset.MinValue, result); }
public List<ScheduledJob> GetJobs() { var scheduledJobs = new List<ScheduledJob>(); var scheduledJob1 = new ScheduledJob() { Crontab = "00 03 * * *" , Action = "InternalWorkflow" , ScheduledJobParameters = "{\"Id\":\"com.swisscom.cms.agentbasedbackup.v002.RunScheduledBackup\",\"Parameters\":\"{\\\"nodeId\\\":\\\"14158\\\"}\"}" , ParallelInvocation = "DoNotStartNewInstance" , MaximumRuntimeMinutes = 10 , AutoDeleteIfNotScheduledDays = 10 , MaxRestartAttempts = 0 , MaxRestartWaitTimeMinutes = 1 , HistoryDepth = 0 , Parameters = "{}" , EntityKindId = (long) Constants.EntityKindId.ScheduledJob , ParentId = 14158L , Id = 14159L , Tid = new Guid("ad8f50df-2a5d-4ea5-9fcc-05882f16a9fe") , Name = "ValidInternalWorkflow" , Description = "ValidInternalWorkflow Description" , CreatedById = 1011L , ModifiedById = 1011L , Created = new DateTimeOffset(2015, 01, 01, 08, 15, 42, TimeSpan.FromHours(2)) , Modified = new DateTimeOffset(2015, 01, 01, 08, 15, 42, TimeSpan.FromHours(2)) }; var scheduledJob2 = new ScheduledJob() { Crontab = "* * * * *" , Action = "ExternalWorkflow" , ScheduledJobParameters = "{\"Id\":\"com.swisscom.cms.agentbasedbackup.v002.RunScheduledBackup\",\"Parameters\":\"{\\\"nodeId\\\":\\\"14158\\\"}\"}" , ParallelInvocation = "DoNotStartNewInstance" , MaximumRuntimeMinutes = 10 , AutoDeleteIfNotScheduledDays = 10 , MaxRestartAttempts = 0 , MaxRestartWaitTimeMinutes = 1 , HistoryDepth = 0 , Parameters = "{}" , EntityKindId = (long) Constants.EntityKindId.ScheduledJob , ParentId = 24158L , Id = 24159L , Tid = new Guid("ad8f50df-2a5d-4ea5-9fcc-05882f16a9fe") , Name = "ValidExternalWorkflow" , Description = "ValidExternalWorkflow Description" , CreatedById = 1011L , ModifiedById = 1011L , Created = new DateTimeOffset(2016, 01, 01, 08, 15, 42, TimeSpan.FromHours(2)) , Modified = new DateTimeOffset(2016, 01, 01, 08, 15, 42, TimeSpan.FromHours(2)) }; var scheduledJob3 = new ScheduledJob() { Crontab = "00 03 * * *" , Action = "InternalWorkflow" , ScheduledJobParameters = "{\"WrongId\":\"com.swisscom.cms.agentbasedbackup.v002.RunScheduledBackup\",\"Parameters\":\"{\\\"nodeId\\\":\\\"14158\\\"}\"}" , ParallelInvocation = "DoNotStartNewInstance" , MaximumRuntimeMinutes = 10 , AutoDeleteIfNotScheduledDays = 10 , MaxRestartAttempts = 0 , MaxRestartWaitTimeMinutes = 1 , HistoryDepth = 0 , Parameters = "{}" , EntityKindId = (long) Constants.EntityKindId.ScheduledJob , ParentId = 14158L , Id = 14159L , Tid = new Guid("ad8f50df-2a5d-4ea5-9fcc-05882f16a9fe") , Name = "InvalidInternalWorkflow" , Description = "InvalidInternalWorkflow Description" , CreatedById = 1011L , ModifiedById = 1011L , Created = new DateTimeOffset(2015, 01, 01, 08, 15, 42, TimeSpan.FromHours(2)) , Modified = new DateTimeOffset(2015, 01, 01, 08, 15, 42, TimeSpan.FromHours(2)) }; var scheduledJob4 = new ScheduledJob() { Crontab = "00 03 * * *" , Action = "ExternalWorkflow" , ScheduledJobParameters = "{\"WrongId\":\"com.swisscom.cms.agentbasedbackup.v002.RunScheduledBackup\",\"Parameters\":\"{\\\"nodeId\\\":\\\"14158\\\"}\"}" , ParallelInvocation = "DoNotStartNewInstance" , MaximumRuntimeMinutes = 10 , AutoDeleteIfNotScheduledDays = 10 , MaxRestartAttempts = 0 , MaxRestartWaitTimeMinutes = 1 , HistoryDepth = 0 , Parameters = "{}" , EntityKindId = (long) Constants.EntityKindId.ScheduledJob , ParentId = 14158L , Id = 14159L , Tid = new Guid("ad8f50df-2a5d-4ea5-9fcc-05882f16a9fe") , Name = "InvalidExternalWorkflow" , Description = "InvalidExternalWorkflow Description" , CreatedById = 1011L , ModifiedById = 1011L , Created = new DateTimeOffset(2015, 01, 01, 08, 15, 42, TimeSpan.FromHours(2)) , Modified = new DateTimeOffset(2015, 01, 01, 08, 15, 42, TimeSpan.FromHours(2)) }; scheduledJobs.Add(scheduledJob1); scheduledJobs.Add(scheduledJob2); scheduledJobs.Add(scheduledJob3); scheduledJobs.Add(scheduledJob4); return scheduledJobs; }