public void Schedule_next_item_when_total_number_of_timer_scheduling_exceed_allowed_limit() { _eventsBuilder.AddProcessedEvents(_eventGraphBuilder.WorkflowStartedEvent()); _eventsBuilder.AddProcessedEvents(TimerFiredEventGraph(TimerName, false)); _eventsBuilder.AddProcessedEvents(TimerFiredEventGraph(TimerName, true)); _eventsBuilder.AddProcessedEvents(TimerFiredEventGraph(TimerName, false)); _eventsBuilder.AddProcessedEvents(TimerFiredEventGraph(TimerName, true)); _eventsBuilder.AddNewEvents(TimerFiredEventGraph(TimerName, false)); var workflow = new WorkflowToRescheduleTimerWithTimerUpToLimit(2); var decisions = workflow.Decisions(_eventsBuilder.Result()); Assert.That(decisions, Is.EqualTo(new[] { new CompleteWorkflowDecision("completed") })); }
public void Reschedule_timer_when_total_number_of_timer_scheduling_is_less_than_allowed_limit() { _eventsBuilder.AddProcessedEvents(_eventGraphBuilder.WorkflowStartedEvent()); _eventsBuilder.AddProcessedEvents(TimerFiredEventGraph(TimerName, false)); _eventsBuilder.AddProcessedEvents(TimerFiredEventGraph(TimerName, true)); _eventsBuilder.AddNewEvents(TimerFiredEventGraph(TimerName, false)); var workflow = new WorkflowToRescheduleTimerWithTimerUpToLimit(2); var decisions = workflow.Decisions(_eventsBuilder.Result()).ToArray(); var scheduleId = Identity.Timer(TimerName).ScheduleId(); Assert.That(decisions.Length, Is.EqualTo(1)); decisions[0].AssertRescheduleTimer(scheduleId, TimeSpan.FromSeconds(2)); }
public void Reschedule_timer_with_reset_id_when_timer_is_fired_with_reset_schedule_id() { const string runId = "runid"; _eventsBuilder.AddProcessedEvents(_eventGraphBuilder.WorkflowStartedEvent()); _eventsBuilder.AddWorkflowRunId(runId); var scheduleId = Identity.Timer(TimerName).ScheduleId(runId + "Reset"); _eventsBuilder.AddNewEvents(_eventGraphBuilder.TimerFiredGraph(scheduleId, TimeSpan.Zero).ToArray()); var workflow = new WorkflowToRescheduleTimerWithTimerUpToLimit(2); var decisions = workflow.Decisions(_eventsBuilder.Result()).ToArray(); Assert.That(decisions.Length, Is.EqualTo(1)); decisions[0].AssertRescheduleTimer(scheduleId, TimeSpan.FromSeconds(2)); }
public void Consider_only_last_similar_events_for_timer_when_counting_the_rescheduled_events() { _eventsBuilder.AddProcessedEvents(_eventGraphBuilder.WorkflowStartedEvent()); _eventsBuilder.AddProcessedEvents(TimerFiredEventGraph(TimerName, false)); _eventsBuilder.AddProcessedEvents(TimerFiredEventGraph(TimerName, true)); _eventsBuilder.AddProcessedEvents(TimerFiredEventGraph(TimerName, true)); _eventsBuilder.AddProcessedEvents(TimerFailedEventGraph(TimerName)); _eventsBuilder.AddNewEvents(TimerFiredEventGraph(TimerName, false)); var workflow = new WorkflowToRescheduleTimerWithTimerUpToLimit(2); var decisions = workflow.Decisions(_eventsBuilder.Result()).ToArray(); var scheduleId = Identity.Timer(TimerName).ScheduleId(); Assert.That(decisions.Length, Is.EqualTo(1)); decisions[0].AssertRescheduleTimer(scheduleId, TimeSpan.FromSeconds(2)); }