public void SettingProjectSetsChildrenProjects() { var project = new Core.Project(); var child = new TriggerStub(); new Multiple(child) { Project = project }; Assert.AreSame(project, child.Project); }
public void NextTimeReturnsLowestValidTime() { var child1 = new TriggerStub(); var child2 = new TriggerStub { NextTimeValue = DateTime.Now }; var child3 = new TriggerStub { NextTimeValue = DateTime.Now.AddHours(1) }; var trigger = new Multiple(child1, child2, child3); var actual = trigger.NextTime; Assert.AreEqual(child2.NextTimeValue, actual); }
public void CleanUpCleansChildren() { var cleaned = false; var child = new TriggerStub { OnCleanUp = () => cleaned = true }; var trigger = new Multiple(child); trigger.CleanUp(); Assert.IsTrue(cleaned); }
public void ResetResetsChildren() { var reset = false; var child = new TriggerStub { OnResetAction = () => reset = true }; var trigger = new Multiple(child); trigger.Reset(); Assert.IsTrue(reset); }
public void InitialiseInitialisesChildren() { var initialised = false; var child = new TriggerStub { OnInitialise = () => initialised = true }; var trigger = new Multiple(child); trigger.Initialise(); Assert.IsTrue(initialised); }
public void ValidateValidatesChildren() { var validated = false; var child = new TriggerStub { OnValidate = vl => validated = true }; var trigger = new Multiple(child); var validationMock = new Mock<IValidationLog>(); trigger.Validate(validationMock.Object); Assert.IsTrue(validated); }
public void TriggerDoesNotFireInsidePeriod() { var clockMock = new Mock<IClock>(); clockMock.Setup(c => c.Now).Returns(() => DateTime.Now); var inner = new TriggerStub { OnCheckAction = () => new IntegrationRequest("Test") }; var trigger = new RollUp(TimeSpan.FromMinutes(5)) { InnerTrigger = inner, Clock = clockMock.Object }; trigger.Reset(); var request = trigger.Check(); Assert.IsNull(request); }
public void StartInitialisesTriggers() { var initialised = false; var trigger = new TriggerStub { OnInitialise = () => initialised = true }; var project = new ProjectStub("Test") { OnLoadState = () => { } }; project.Triggers.Add(trigger); project.Start(); // Give the project time to start Thread.Sleep(100); Assert.IsTrue(initialised); }
public void StopCleansUpTriggers() { var cleaned = false; var trigger = new TriggerStub { OnCleanUp = () => cleaned = true, OnCheckAction = () => null }; var project = new ProjectStub("Test") { OnLoadState = () => { } }; project.Triggers.Add(trigger); project.Start(); // Give the project time to start Thread.Sleep(100); project.Stop(); // Give the project time to stop Thread.Sleep(1000); Assert.IsTrue(cleaned); Assert.IsNull(project.MainThreadException); }
public void CheckReturnsRequestIfAnyChildSetWithOr() { var child1 = new TriggerStub { OnCheckAction = () => null }; var child2 = new TriggerStub { OnCheckAction = () => new IntegrationRequest("Dummy") }; var trigger = new Multiple(child1, child2); var actual = trigger.Check(); Assert.IsNotNull(actual); Assert.AreEqual("Multiple", actual.SourceTrigger); }
public void CheckReturnsNullIfAllChildrenNullWithOr() { var child1 = new TriggerStub { OnCheckAction = () => null }; var child2 = new TriggerStub { OnCheckAction = () => null }; var trigger = new Multiple(child1, child2); var actual = trigger.Check(); Assert.IsNull(actual); }
public void IntegrateResetsTriggers() { var reset = false; var dummy = new TriggerStub { OnResetAction = () => reset = true }; var executionFactoryMock = new Mock<ITaskExecutionFactory>(MockBehavior.Strict); InitialiseExecutionContext(executionFactoryMock); var project = new ProjectStub("test") { TaskExecutionFactory = executionFactoryMock.Object }; project.Triggers.Add(dummy); var request = new IntegrationRequest("Dummy"); project.Integrate(request); Assert.IsTrue(reset); }
public void IntegrateHandlesErrorDuringTriggerReset() { var dummy = new TriggerStub { OnResetAction = () => { throw new Exception("Oops"); } }; var executionFactoryMock = new Mock<ITaskExecutionFactory>(MockBehavior.Strict); InitialiseExecutionContext(executionFactoryMock); var project = new Project("test") { TaskExecutionFactory = executionFactoryMock.Object }; project.Triggers.Add(dummy); var request = new IntegrationRequest("Dummy"); project.Integrate(request); }
private static Trigger GenerateRunOnceTrigger(Action onRun) { var triggered = false; var trigger = new TriggerStub { OnCheckAction = () => { if (!triggered) { triggered = true; onRun(); return new IntegrationRequest("Dummy"); } return null; } }; return trigger; }
public void CheckReturnsNullIfAnyChildNullWithAnd() { var child1 = new TriggerStub { OnCheckAction = () => null }; var child2 = new TriggerStub { OnCheckAction = () => new IntegrationRequest("Dummy") }; var trigger = new Multiple(child1, child2) { Condition = CombinationOperator.And }; var actual = trigger.Check(); Assert.IsNull(actual); }
public void ValidateValidatesTriggers() { var validateCalled = false; var trigger = new TriggerStub { OnValidate = vl => validateCalled = true }; var project = new Project("Test"); project.Triggers.Add(trigger); var validationMock = new Mock<IValidationLog>(); project.Validate(validationMock.Object); Assert.IsTrue(validateCalled); }
public void CheckReturnsRequestIfAllChildrenSetWithAnd() { var child1 = new TriggerStub { OnCheckAction = () => new IntegrationRequest("Dummy") }; var child2 = new TriggerStub { OnCheckAction = () => new IntegrationRequest("Dummy") }; var trigger = new Multiple(child1, child2) { Condition = CombinationOperator.And }; var actual = trigger.Check(); Assert.IsNotNull(actual); Assert.AreEqual("Multiple", actual.SourceTrigger); }