public void CreateJob_HandlesDuplicatesAccordingToConflictAction(CreateJobConflictAction conflictAction, bool expectedResult) { Assert.IsTrue(jobStore.CreateJob(dummyJobSpec, new DateTime(2007, 5, 31), CreateJobConflictAction.Ignore)); Assert.AreEqual(expectedResult, jobStore.CreateJob(dummyJobSpec, new DateTime(2007, 6, 1), conflictAction)); if (expectedResult) { JobDetails jobDetails = jobStore.GetJobDetails(dummyJobSpec.Name); // In Update mode, the creation time should remain the same as the original job. // We should also preserve its history (though we don't check this right now. -- TODO) if (conflictAction == CreateJobConflictAction.Update) { DateTimeAssert.AreEqualIncludingKind(new DateTime(2007, 5, 31, 0, 0, 0, DateTimeKind.Utc), jobDetails.CreationTimeUtc); } // In Replace mode, the creation time should be that of the newly created job. if (conflictAction == CreateJobConflictAction.Replace) { DateTimeAssert.AreEqualIncludingKind(new DateTime(2007, 6, 1, 0, 0, 0, DateTimeKind.Utc), jobDetails.CreationTimeUtc); } } }
public void Schedule(int startDay, int endDay, int periodDays, int jobExecutionCount, TriggerScheduleAction misfireAction, TriggerScheduleCondition condition, int timeBasisDay, bool isFirstTime, TriggerScheduleAction expectedAction, int expectedFireDay, int expectedJobExecutionCountRemaining, bool expectedIsActive, bool expectedIsFirstTime) { DateTime startTime = new DateTime(1970, 1, startDay); DateTime?endTime = endDay != 0 ? new DateTime(1970, 1, endDay) : (DateTime?)null; TimeSpan?period = periodDays != 0 ? new TimeSpan(periodDays, 0, 0, 0) : (TimeSpan?)null; int? jobExecutionCountArg = jobExecutionCount >= 0 ? jobExecutionCount : (int?)null; DateTime timeBasis = new DateTime(1970, 1, timeBasisDay); DateTime?expectedFireTime = expectedFireDay != 0 ? new DateTime(1970, 1, expectedFireDay, 0, 0, 0, DateTimeKind.Utc) : (DateTime?)null; int?expectedJobExecutionCountRemainingArg = expectedJobExecutionCountRemaining >= 0 ? expectedJobExecutionCountRemaining : (int?)null; PeriodicTrigger trigger = new PeriodicTrigger(startTime, endTime, period, jobExecutionCountArg); trigger.MisfireAction = misfireAction; trigger.MisfireThreshold = TimeSpan.Zero; trigger.IsFirstTime = expectedIsFirstTime; TriggerScheduleAction action = trigger.Schedule(condition, timeBasis, null); Assert.AreEqual(expectedAction, action); DateTimeAssert.AreEqualIncludingKind(expectedFireTime, trigger.NextFireTimeUtc); Assert.AreEqual(expectedJobExecutionCountRemainingArg, trigger.JobExecutionCountRemaining); Assert.AreEqual(expectedIsActive, trigger.IsActive); }
public void EndTimeUtc_GetterAndSetter() { JobExecutionDetails details = new JobExecutionDetails(SchedulerGuid, DateTime.UtcNow); details.EndTimeUtc = new DateTime(1970, 1, 2); DateTimeAssert.AreEqualIncludingKind(new DateTime(1970, 1, 2, 0, 0, 0, DateTimeKind.Utc), details.EndTimeUtc); }
public void SchedulePendingJob_WithSkipAction() { JobDetails jobDetails = new JobDetails(dummyJobSpec, DateTime.UtcNow); jobDetails.JobState = JobState.Pending; PrepareMockJobWatcher(jobDetails); Expect.Call(mockTrigger.Schedule(TriggerScheduleCondition.Latch, DateTime.UtcNow, null)) .Constraints(Rhino.Mocks.Constraints.Is.Equal(TriggerScheduleCondition.Latch), Rhino.Mocks.Constraints.Is.Anything(), Rhino.Mocks.Constraints.Is.Null()) .Return(TriggerScheduleAction.Skip); Expect.Call(mockTrigger.NextFireTimeUtc).Return(new DateTime(1970, 1, 5, 0, 0, 0, DateTimeKind.Utc)); Expect.Call(mockTrigger.NextMisfireThreshold).Return(new TimeSpan(0, 1, 0)); mockJobStore.SaveJobDetails(jobDetails); LastCall.Do((SaveJobDetailsDelegate)WakeOnSaveJobDetails); Mocks.ReplayAll(); RunSchedulerUntilWake(); Assert.AreEqual(JobState.Scheduled, jobDetails.JobState); DateTimeAssert.AreEqualIncludingKind(new DateTime(1970, 1, 5, 0, 0, 0, DateTimeKind.Utc), jobDetails.NextTriggerFireTimeUtc); Assert.AreEqual(new TimeSpan(0, 1, 0), jobDetails.NextTriggerMisfireThreshold); Assert.IsNull(jobDetails.JobSpec.JobData); Assert.IsNull(jobDetails.LastJobExecutionDetails); }
public void EndTimeUtc_GetterAndSetter() { PeriodicTrigger trigger = new PeriodicTrigger(DateTime.MaxValue, null, null, null); trigger.EndTimeUtc = new DateTime(2000, 3, 4); DateTimeAssert.AreEqualIncludingKind(new DateTime(2000, 3, 4, 0, 0, 0, DateTimeKind.Utc), trigger.EndTimeUtc); }
public void CreationTimeUtc_GetterAndSetter() { JobDetails jobDetails = new JobDetails(jobSpec, DateTime.UtcNow); jobDetails.CreationTimeUtc = new DateTime(1970, 1, 1); DateTimeAssert.AreEqualIncludingKind(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc), jobDetails.CreationTimeUtc); }
public void ConstructorSetsProperties() { JobExecutionDetails details = new JobExecutionDetails(SchedulerGuid, new DateTime(2000, 3, 4)); Assert.AreEqual(SchedulerGuid, details.SchedulerGuid); DateTimeAssert.AreEqualIncludingKind(new DateTime(2000, 3, 4, 0, 0, 0, DateTimeKind.Utc), details.StartTimeUtc); Assert.IsNull(details.EndTimeUtc); Assert.IsFalse(details.Succeeded); Assert.AreEqual("Unknown", details.StatusMessage); }
public void ConstructorSetsProperties() { JobDetails jobDetails = new JobDetails(jobSpec, new DateTime(2000, 4, 2)); Assert.AreSame(jobSpec, jobDetails.JobSpec); DateTimeAssert.AreEqualIncludingKind(new DateTime(2000, 4, 2, 0, 0, 0, DateTimeKind.Utc), jobDetails.CreationTimeUtc); Assert.AreEqual(JobState.Pending, jobDetails.JobState); Assert.IsNull(jobDetails.NextTriggerFireTimeUtc); Assert.IsNull(jobDetails.NextTriggerMisfireThreshold); Assert.IsNull(jobDetails.LastJobExecutionDetails); }
public void ConstructorSetsProperties() { TimeSpan interval = new TimeSpan(0, 1, 30); PeriodicTrigger trigger = new PeriodicTrigger(new DateTime(2000, 3, 4), new DateTime(1999, 1, 2), interval, 33); DateTimeAssert.AreEqualIncludingKind(new DateTime(2000, 3, 4, 0, 0, 0, DateTimeKind.Utc), trigger.StartTimeUtc); Assert.AreEqual(interval, trigger.Period); Assert.AreEqual(PeriodicTrigger.DefaultMisfireAction, trigger.MisfireAction); Assert.AreEqual(null, trigger.MisfireThreshold); DateTimeAssert.AreEqualIncludingKind(new DateTime(1999, 1, 2, 0, 0, 0, DateTimeKind.Utc), trigger.EndTimeUtc); Assert.AreEqual(33, trigger.JobExecutionCountRemaining); Assert.IsTrue(trigger.IsFirstTime); }
public void IsInRange_WhenTestValueEqualsMax_ShouldNotThrow() { //---------------Set up test pack------------------- var min = new DateTime(2011, 1, 1); var max = new DateTime(2022, 2, 2); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- Assert.DoesNotThrow(() => DateTimeAssert.IsInRange(max, min, max)); //---------------Test Result ----------------------- }
public void IsInRange_GivenMinAndMaxDate_WhenInputIsWithinRange_ShouldNotThrow() { //---------------Set up test pack------------------- var min = new DateTime(2011, 1, 1); var max = new DateTime(2022, 2, 2); var test = new DateTime(2016, 1, 6); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- Assert.DoesNotThrow(() => DateTimeAssert.IsInRange(test, min, max)); //---------------Test Result ----------------------- }
public void IsInTimeRange_WhenTestValueWithinTimeRange_ShouldNotThrow() { //---------------Set up test pack------------------- var min = new DateTime(1900, 1, 1, 2, 0, 0); var max = new DateTime(1900, 1, 1, 4, 0, 0); var test = new DateTime(2011, 1, 1, 3, 0, 0); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- Assert.DoesNotThrow(() => DateTimeAssert.IsInTimeRange(test, min, max)); //---------------Test Result ----------------------- }
public void IsInRange_CanGetDatesAsIntegers() { //---------------Set up test pack------------------- var min = new DateTime(2011, 1, 1); var max = new DateTime(2022, 2, 2); var test = new DateTime(2016, 6, 6); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- Assert.DoesNotThrow(() => DateTimeAssert.IsInRange(test, min.Year, min.Month, min.Day, max.Year, max.Month, max.Day)); //---------------Test Result ----------------------- }
public void IsInRange_GivenMinAndMaxDate_WhenInputIsTooSmall_ShouldAssertFail() { //---------------Set up test pack------------------- var min = new DateTime(2011, 1, 1); var max = new DateTime(2022, 2, 2); var test = new DateTime(2006, 1, 6); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- var ex = Assert.Throws <AssertionException>(() => DateTimeAssert.IsInRange(test, min, max)); //---------------Test Result ----------------------- Assert.AreEqual(test + " does not fall in the range " + min + " - " + max, ex.Message); }
public void IsInTimeRange_WhenTestValueGreaterThanTimeRange_ShouldThrow() { //---------------Set up test pack------------------- var min = new DateTime(1900, 1, 1, 2, 0, 0); var max = new DateTime(1900, 1, 1, 4, 0, 0); var test = new DateTime(2011, 1, 1, 6, 0, 0); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- var ex = Assert.Throws <AssertionException>(() => DateTimeAssert.IsInTimeRange(test, min, max)); //---------------Test Result ----------------------- Assert.AreEqual("Time of " + test + " does not fall within expected range: " + min.AsTimeString() + " - " + max.AsTimeString(), ex.Message); }
public void RequestMessageDataJsonConvertTest() { var objectToSend = new RequestMessageData <SomeMessage>(new SomeMessage(1, "dua", DateTime.Now, new List <string> { "ratna", "santi" })); //some class or object var serializeObject = JsonConvert.SerializeObject(objectToSend); var deserializeObject = JsonConvert.DeserializeObject <RequestMessageData <SomeMessage> >(serializeObject); Assert.AreEqual(objectToSend.Data.Number, deserializeObject.Data.Number); Assert.AreEqual(objectToSend.Data.Message, deserializeObject.Data.Message); DateTimeAssert.AreEqual(objectToSend.Data.StartDate, deserializeObject.Data.StartDate, TimeSpan.FromMinutes(1)); Assert.AreEqual(objectToSend.Data.MemberList.Count, deserializeObject.Data.MemberList.Count); Assert.IsTrue(deserializeObject.Data.MemberList.Contains("ratna")); Assert.IsTrue(deserializeObject.Data.MemberList.Contains("santi")); }
public void ResetSetsTheNextTime() { var clockMock = new Mock <IClock>(); clockMock.Setup(c => c.Now).Returns(() => DateTime.Now); var trigger = new RollUp(TimeSpan.FromMinutes(5)) { Clock = clockMock.Object }; trigger.Reset(); var expected = DateTime.Now.AddMinutes(5); var actual = trigger.NextTime.Value; DateTimeAssert.AreEqual(expected, actual, DateTimeCompare.IgnoreSeconds); }
public void SchedulerTriggeredJob_WithSkipAction(bool misfire, bool nextTriggerFireTimeNotNull, bool nextTriggerMisfireThresholdNotNull) { // Create a job scheduled to fire 3 minutes in the past. // We cause a misfire by setting a threshold for 2 seconds which clearly is // in the past. Otherwise we set the threshold to 1 minute which clearly is satisfiable. DateTime schedTime = DateTime.UtcNow.AddSeconds(-3); JobDetails jobDetails = new JobDetails(dummyJobSpec, schedTime.AddSeconds(-5)); jobDetails.JobState = JobState.Triggered; if (nextTriggerFireTimeNotNull) { jobDetails.NextTriggerFireTimeUtc = schedTime; } if (nextTriggerMisfireThresholdNotNull) { jobDetails.NextTriggerMisfireThreshold = misfire ? new TimeSpan(0, 0, 2) : new TimeSpan(0, 1, 0); } PrepareMockJobWatcher(jobDetails); TriggerScheduleCondition expectedCondition = misfire ? TriggerScheduleCondition.Misfire : TriggerScheduleCondition.Fire; Expect.Call(mockTrigger.Schedule(expectedCondition, DateTime.MinValue, null)) .Constraints(Rhino.Mocks.Constraints.Is.Equal(expectedCondition), Rhino.Mocks.Constraints.Is.Anything(), Rhino.Mocks.Constraints.Is.Null()) .Return(TriggerScheduleAction.Skip); Expect.Call(mockTrigger.NextFireTimeUtc).Return(new DateTime(1970, 1, 5, 0, 0, 0, DateTimeKind.Utc)); Expect.Call(mockTrigger.NextMisfireThreshold).Return(new TimeSpan(0, 2, 0)); mockJobStore.SaveJobDetails(jobDetails); LastCall.Do((SaveJobDetailsDelegate)WakeOnSaveJobDetails); Mocks.ReplayAll(); RunSchedulerUntilWake(); Assert.AreEqual(JobState.Scheduled, jobDetails.JobState); DateTimeAssert.AreEqualIncludingKind(new DateTime(1970, 1, 5, 0, 0, 0, DateTimeKind.Utc), jobDetails.NextTriggerFireTimeUtc); Assert.AreEqual(new TimeSpan(0, 2, 0), jobDetails.NextTriggerMisfireThreshold); Assert.IsNull(jobDetails.JobSpec.JobData); Assert.IsNull(jobDetails.LastJobExecutionDetails); }
public void ResetSetsTheNextTime() { var clockMock = new Mock <IClock>(MockBehavior.Strict); clockMock.Setup(c => c.Today).Returns(DateTime.Today); clockMock.Setup(c => c.Now).Returns(DateTime.Today.AddHours(20)); var trigger = new Schedule(TimeSpan.Parse("17:00")) { Clock = clockMock.Object }; trigger.Reset(); var expected = DateTime.Today.AddDays(1).AddHours(17); var actual = trigger.NextTime.Value; DateTimeAssert.AreEqual(expected, actual, DateTimeCompare.IgnoreSeconds); }
public void ConstructorSetsProperties() { DailyFireWindow window = new DailyFireWindow(3, 13); TimeSpan? interval = new TimeSpan(0, 1, 45); DailyPeriodicWindowTrigger trigger = new DailyPeriodicWindowTrigger(new DateTime(2000, 3, 14), new DateTime(2001, 3, 14), window, interval, 33); DateTimeAssert.AreEqualIncludingKind(new DateTime(2000, 3, 14, 0, 0, 0, DateTimeKind.Utc), trigger.StartTimeUtc); Assert.AreEqual(interval, trigger.Period); Assert.AreEqual(DailyPeriodicWindowTrigger.DefaultMisfireAction, trigger.MisfireAction); Assert.AreEqual(null, trigger.MisfireThreshold); DateTimeAssert.AreEqualIncludingKind(new DateTime(2001, 3, 14, 0, 0, 0, DateTimeKind.Utc), trigger.EndTimeUtc); Assert.AreEqual(33, trigger.JobExecutionCountRemaining); Assert.IsTrue(trigger.IsFirstTime); Assert.AreEqual(3, trigger.DailyFireWindow.StartHour); Assert.AreEqual(13, trigger.DailyFireWindow.EndHour); }
public void DataContractSerializeDeserialize_WeekDateSerializeObject_AreEqual() { var input = new WeekDateSerializeObject() { Id = 17, Obj = WeekDateTest.TestStruct, Date = new DateTime(1970, 02, 14), }; var exp = new WeekDateSerializeObject() { Id = 17, Obj = WeekDateTest.TestStruct, Date = new DateTime(1970, 02, 14), }; var act = SerializationTest.DataContractSerializeDeserialize(input); Assert.AreEqual(exp.Id, act.Id, "Id"); Assert.AreEqual(exp.Obj, act.Obj, "Obj"); DateTimeAssert.AreEqual(exp.Date, act.Date, "Date");; }
public void XmlSerializeDeserialize_Empty_AreEqual() { var input = new WeekDateSerializeObject() { Id = 17, Obj = WeekDate.MinValue, Date = new DateTime(1970, 02, 14), }; var exp = new WeekDateSerializeObject() { Id = 17, Obj = WeekDate.MinValue, Date = new DateTime(1970, 02, 14), }; var act = SerializationTest.XmlSerializeDeserialize(input); Assert.AreEqual(exp.Id, act.Id, "Id"); Assert.AreEqual(exp.Obj, act.Obj, "Obj"); DateTimeAssert.AreEqual(exp.Date, act.Date, "Date");; }
public void SerializeDeserialize_InternetMediaTypeSerializeObject_AreEqual() { var input = new InternetMediaTypeSerializeObject() { Id = 17, Obj = InternetMediaTypeTest.TestStruct, Date = new DateTime(1970, 02, 14), }; var exp = new InternetMediaTypeSerializeObject() { Id = 17, Obj = InternetMediaTypeTest.TestStruct, Date = new DateTime(1970, 02, 14), }; var act = SerializationTest.SerializeDeserialize(input); Assert.AreEqual(exp.Id, act.Id, "Id"); Assert.AreEqual(exp.Obj, act.Obj, "Obj"); DateTimeAssert.AreEqual(exp.Date, act.Date, "Date");; }
public void SerializeDeserialize_Empty_AreEqual() { var input = new PercentageSerializeObject() { Id = 17, Obj = PercentageTest.TestStruct, Date = new DateTime(1970, 02, 14), }; var exp = new PercentageSerializeObject() { Id = 17, Obj = PercentageTest.TestStruct, Date = new DateTime(1970, 02, 14), }; var act = SerializationTest.SerializeDeserialize(input); Assert.AreEqual(exp.Id, act.Id, "Id"); Assert.AreEqual(exp.Obj, act.Obj, "Obj"); DateTimeAssert.AreEqual(exp.Date, act.Date, "Date");; }
public void SchedulePeriodicTriggerCorrectlyComputesNextCycle() { // Constructs a 3-day period trigger on an odd date. PeriodicTrigger trigger = new PeriodicTrigger(new DateTime(1970, 1, 5), null, new TimeSpan(3, 0, 0, 0), null); trigger.MisfireAction = TriggerScheduleAction.Skip; trigger.MisfireThreshold = TimeSpan.Zero; // Ensure returns next period if skipping with time basis on an even boundary. trigger.Schedule(TriggerScheduleCondition.Misfire, new DateTime(1970, 1, 8), null); DateTimeAssert.AreEqualIncludingKind(new DateTime(1970, 1, 11, 0, 0, 0, DateTimeKind.Utc), trigger.NextFireTimeUtc); // Ensure returns next period if skipping with time basis at 1/3 beyond even boundary. trigger.Schedule(TriggerScheduleCondition.Misfire, new DateTime(1970, 1, 9), null); DateTimeAssert.AreEqualIncludingKind(new DateTime(1970, 1, 11, 0, 0, 0, DateTimeKind.Utc), trigger.NextFireTimeUtc); // Ensure returns next period if skipping with time basis at 2/3 beyond even boundary. trigger.Schedule(TriggerScheduleCondition.Misfire, new DateTime(1970, 1, 10), null); DateTimeAssert.AreEqualIncludingKind(new DateTime(1970, 1, 11, 0, 0, 0, DateTimeKind.Utc), trigger.NextFireTimeUtc); }
public void XmlSerializeDeserialize_Empty_AreEqual() { var input = new EmailAddressCollectionSerializeObject() { Id = 17, Obj = new EmailAddressCollection(), Date = new DateTime(1970, 02, 14), }; var exp = new EmailAddressCollectionSerializeObject() { Id = 17, Obj = new EmailAddressCollection(), Date = new DateTime(1970, 02, 14), }; var act = SerializationTest.XmlSerializeDeserialize(input); Assert.AreEqual(exp.Id, act.Id, "Id"); CollectionAssert.AreEqual(exp.Obj, act.Obj, "Obj"); DateTimeAssert.AreEqual(exp.Date, act.Date, "Date");; }
public void XmlSerializeDeserialize_Empty_AreEqual() { var input = new FormattableArgumentsSerializeObject() { Id = 17, Obj = FormattingArguments.None, Date = new DateTime(1970, 02, 14), }; var exp = new FormattableArgumentsSerializeObject() { Id = 17, Obj = FormattingArguments.None, Date = new DateTime(1970, 02, 14), }; var act = SerializationTest.XmlSerializeDeserialize(input); Assert.AreEqual(exp.Id, act.Id, "Id"); Assert.AreEqual(exp.Obj, act.Obj, "Obj"); DateTimeAssert.AreEqual(exp.Date, act.Date, "Date");; }
public void XmlSerializeDeserialize_Empty_AreEqual() { var input = new InternationalBankAccountNumberSerializeObject() { Id = 17, Obj = InternationalBankAccountNumber.Empty, Date = new DateTime(1970, 02, 14), }; var exp = new InternationalBankAccountNumberSerializeObject() { Id = 17, Obj = InternationalBankAccountNumber.Empty, Date = new DateTime(1970, 02, 14), }; var act = SerializationTest.XmlSerializeDeserialize(input); Assert.AreEqual(exp.Id, act.Id, "Id"); Assert.AreEqual(exp.Obj, act.Obj, "Obj"); DateTimeAssert.AreEqual(exp.Date, act.Date, "Date");; }
public void XmlSerializeDeserialize_Empty_AreEqual() { var input = new CryptographicSeedSerializeObject() { Id = 17, Obj = CryptographicSeed.Empty, Date = new DateTime(1970, 02, 14), }; var exp = new CryptographicSeedSerializeObject() { Id = 17, Obj = CryptographicSeed.Empty, Date = new DateTime(1970, 02, 14), }; var act = SerializationTest.XmlSerializeDeserialize(input); Assert.AreEqual(exp.Id, act.Id, "Id"); Assert.AreEqual(exp.Obj, act.Obj, "Obj"); DateTimeAssert.AreEqual(exp.Date, act.Date, "Date");; }
public void XmlSerializeDeserialize_CurrencySerializeObject_AreEqual() { var input = new CurrencySerializeObject() { Id = 17, Obj = CurrencyTest.TestStruct, Date = new DateTime(1970, 02, 14), }; var exp = new CurrencySerializeObject() { Id = 17, Obj = CurrencyTest.TestStruct, Date = new DateTime(1970, 02, 14), }; var act = SerializationTest.XmlSerializeDeserialize(input); Assert.AreEqual(exp.Id, act.Id, "Id"); Assert.AreEqual(exp.Obj, act.Obj, "Obj"); DateTimeAssert.AreEqual(exp.Date, act.Date, "Date");; }