public void CheckReturnsNullIfWithinPeriod() { var clockMock = new Mock<IClock>(); clockMock.Setup(c => c.Now).Returns(() => DateTime.Now); var trigger = new Interval(TimeSpan.FromMinutes(5)) { Clock = clockMock.Object }; trigger.Reset(); var actual = trigger.Check(); Assert.IsNull(actual); }
public void ResetSetsTheNextTime() { var clockMock = new Mock<IClock>(); clockMock.Setup(c => c.Now).Returns(() => DateTime.Now); var trigger = new Interval(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 ValidateDetectsMissingPeriod() { var errorAdded = false; var trigger = new Interval(); var validation = new ValidationLogStub { OnAddErrorMessage = (m, a) => { Assert.AreEqual( "No period set - trigger will not fire", m); CollectionAssert.IsEmpty(a); errorAdded = true; } }; trigger.Validate(validation); Assert.IsTrue(errorAdded); }
public void CheckReturnsIntegrationRequestIfBeyondPeriod() { var clockMock = new Mock<IClock>(); var time = DateTime.Now; clockMock.Setup(c => c.Now).Returns(() => { time = time.AddMinutes(6); return time; }); var trigger = new Interval(TimeSpan.FromMinutes(5)) { Clock = clockMock.Object }; trigger.Reset(); var now = DateTime.Now; var actual = trigger.Check(); Assert.IsNotNull(actual); Assert.AreEqual("Interval", actual.SourceTrigger); Assert.IsTrue(actual.Time >= now && actual.Time <= DateTime.Now); }