public void By_default_it_is_not_reschedulable_timer() { var scheduleTimerDecision = new ScheduleTimerDecision(Identity.Timer("timer"), TimeSpan.FromSeconds(2.6)); var swfDecision = scheduleTimerDecision.Decision(); Assert.That(swfDecision.StartTimerDecisionAttributes.Control.FromJson <TimerScheduleData>().IsARescheduleTimer, Is.EqualTo(false)); }
public static void AssertRescheduleTimer(this WorkflowDecision decision, ScheduleId scheduleId, TimeSpan timeout) { Assert.That(decision, Is.EqualTo(ScheduleTimerDecision.RescheduleTimer(scheduleId, timeout))); var swfDecision = decision.SwfDecision(); var timerData = swfDecision.StartTimerDecisionAttributes.Control.As <TimerScheduleData>(); Assert.That(timerData.TimerType, Is.EqualTo(TimerType.Reschedule)); Assert.That(swfDecision.StartTimerDecisionAttributes.StartToFireTimeout, Is.EqualTo(timeout.TotalSeconds.ToString())); }
public void Should_round_up_time_to_fire_duration() { var scheduleTimerDecision = new ScheduleTimerDecision(Identity.Timer("timer"), TimeSpan.FromSeconds(2.6), true); var swfDecision = scheduleTimerDecision.Decision(); Assert.That(swfDecision.DecisionType, Is.EqualTo(DecisionType.StartTimer)); Assert.That(swfDecision.StartTimerDecisionAttributes.StartToFireTimeout, Is.EqualTo("3")); }
public static void AssertSignalTimer(this WorkflowDecision decision, ScheduleId scheduleId, long triggerId, TimeSpan timeout) { Assert.That(decision, Is.EqualTo(ScheduleTimerDecision.SignalTimer(scheduleId, triggerId, timeout))); var swfDecision = decision.SwfDecision(); var timerData = swfDecision.StartTimerDecisionAttributes.Control.As <TimerScheduleData>(); Assert.That(timerData.TimerType, Is.EqualTo(TimerType.SignalTimer)); Assert.That(timerData.SignalTriggerEventId, Is.EqualTo(triggerId)); var startToFireTimeout = TimeSpan.FromSeconds(Double.Parse(swfDecision.StartTimerDecisionAttributes.StartToFireTimeout)); Assert.That((startToFireTimeout - timeout).Duration(), Is.LessThan(TimeSpan.FromSeconds(1))); }
private IEnumerable <WorkflowDecision> AllNonCompletingDecisions() { return(new WorkflowDecision[] { new ScheduleActivityDecision(Identity.New("id", "1.0").ScheduleId()), ScheduleTimerDecision.WorkflowItem(Identity.Timer("timer").ScheduleId(), TimeSpan.FromSeconds(2)), new CancelActivityDecision(Identity.New("newid", "1.0").ScheduleId()), new CancelTimerDecision(Identity.Timer("first").ScheduleId()), new ScheduleLambdaDecision(Identity.Lambda("name").ScheduleId(), "input"), new ScheduleChildWorkflowDecision(Identity.New("w", "v").ScheduleId(), "input"), }); }
public void Should_return_aws_decision_to_schedule_timer() { var timerIdentity = Identity.Timer("timer"); var scheduleTimerDecision = new ScheduleTimerDecision(timerIdentity, TimeSpan.FromSeconds(2), true); var swfDecision = scheduleTimerDecision.Decision(); Assert.That(swfDecision.DecisionType, Is.EqualTo(DecisionType.StartTimer)); Assert.That(swfDecision.StartTimerDecisionAttributes.TimerId, Is.EqualTo(timerIdentity.Id.ToString())); Assert.That(swfDecision.StartTimerDecisionAttributes.StartToFireTimeout, Is.EqualTo("2")); Assert.That(swfDecision.StartTimerDecisionAttributes.Control.FromJson <TimerScheduleData>().IsARescheduleTimer, Is.EqualTo(true)); Assert.That(swfDecision.StartTimerDecisionAttributes.Control.FromJson <TimerScheduleData>().TimerName, Is.EqualTo("timer")); }
public void AWS_decision_for_workflow_item_timer() { var scheduleId = Identity.Timer("timer").ScheduleId(); var scheduleTimerDecision = ScheduleTimerDecision.WorkflowItem(scheduleId, TimeSpan.FromSeconds(2)); var swfDecision = scheduleTimerDecision.SwfDecision(); Assert.That(swfDecision.DecisionType, Is.EqualTo(DecisionType.StartTimer)); Assert.That(swfDecision.StartTimerDecisionAttributes.TimerId, Is.EqualTo(scheduleId.ToString())); Assert.That(swfDecision.StartTimerDecisionAttributes.StartToFireTimeout, Is.EqualTo("2")); Assert.That(swfDecision.StartTimerDecisionAttributes.Control.As <TimerScheduleData>().TimerType, Is.EqualTo(TimerType.WorkflowItem)); Assert.That(swfDecision.StartTimerDecisionAttributes.Control.As <TimerScheduleData>().TimerName, Is.EqualTo("timer")); }
public void Hashcode_test() { var retimer = ScheduleTimerDecision.RescheduleTimer(Identity.Timer("timer1").ScheduleId(), TimeSpan.FromSeconds(2)); var wtimer = ScheduleTimerDecision.WorkflowItem(Identity.Timer("timer1").ScheduleId(), TimeSpan.FromSeconds(2)); var sitimer = ScheduleTimerDecision.SignalTimer(Identity.Timer("timer1").ScheduleId(), 1, TimeSpan.FromSeconds(2)); var retimer2 = ScheduleTimerDecision.RescheduleTimer(Identity.Timer("timer2").ScheduleId(), TimeSpan.FromSeconds(2)); Assert.That(retimer.GetHashCode(), Is.EqualTo(wtimer.GetHashCode())); Assert.That(retimer.GetHashCode(), Is.EqualTo(sitimer.GetHashCode())); Assert.That(retimer.GetHashCode(), Is.Not.EqualTo(retimer2.GetHashCode())); }
public void AWS_decision_for_signal_timer() { var scheduleId = Identity.Timer("timer").ScheduleId(); long triggerEventId = 10; var scheduleTimerDecision = ScheduleTimerDecision.SignalTimer(scheduleId, triggerEventId, TimeSpan.FromSeconds(2)); var swfDecision = scheduleTimerDecision.SwfDecision(); Assert.That(swfDecision.DecisionType, Is.EqualTo(DecisionType.StartTimer)); Assert.That(swfDecision.StartTimerDecisionAttributes.TimerId, Is.EqualTo(scheduleId.ToString())); Assert.That(swfDecision.StartTimerDecisionAttributes.StartToFireTimeout, Is.EqualTo("2")); var timerScheduleData = swfDecision.StartTimerDecisionAttributes.Control.As <TimerScheduleData>(); Assert.That(timerScheduleData.TimerType, Is.EqualTo(TimerType.SignalTimer)); Assert.That(timerScheduleData.TimerName, Is.EqualTo("timer")); Assert.That(timerScheduleData.SignalTriggerEventId, Is.EqualTo(triggerEventId)); }
public void Equality_tests() { var scheduleId1 = Identity.Timer("timer1").ScheduleId(); var scheduleId2 = Identity.Timer("timer2").ScheduleId(); Assert.IsTrue(ScheduleTimerDecision.RescheduleTimer(scheduleId1, TimeSpan.FromSeconds(2)) .Equals(ScheduleTimerDecision.RescheduleTimer(scheduleId1, TimeSpan.FromSeconds(3)))); Assert.IsTrue(ScheduleTimerDecision.WorkflowItem(scheduleId1, TimeSpan.FromSeconds(2)) .Equals(ScheduleTimerDecision.RescheduleTimer(scheduleId1, TimeSpan.FromSeconds(2)))); Assert.IsTrue(ScheduleTimerDecision.SignalTimer(scheduleId1, 0, TimeSpan.FromSeconds(2)) .Equals(ScheduleTimerDecision.RescheduleTimer(scheduleId1, TimeSpan.FromSeconds(2)))); Assert.IsFalse(ScheduleTimerDecision.RescheduleTimer(scheduleId1, TimeSpan.FromSeconds(2)) .Equals(ScheduleTimerDecision.RescheduleTimer(scheduleId2, TimeSpan.FromSeconds(2)))); Assert.IsFalse(ScheduleTimerDecision.RescheduleTimer(scheduleId1, TimeSpan.FromSeconds(2)) .Equals(ScheduleTimerDecision.WorkflowItem(scheduleId2, TimeSpan.FromSeconds(2)))); }