public void Reschedule_activity_when_total_number_of_scheduling_is_less_than_allowed_limit() { var workflow = new WorkflowToRescheduleActivityUpToLimit(3); _eventsBuilder.AddProcessedEvents(_eventGraphBuilder.WorkflowStartedEvent()); _eventsBuilder.AddProcessedEvents(ActivityCompletedEventGraph(ActivityName, ActivityVersion, PositionalName)); _eventsBuilder.AddProcessedEvents(ActivityCompletedEventGraph(ActivityName, ActivityVersion, PositionalName)); _eventsBuilder.AddNewEvents(ActivityCompletedEventGraph(ActivityName, ActivityVersion, PositionalName)); var decisions = workflow.Decisions(_eventsBuilder.Result()); Assert.That(decisions, Is.EqualTo(new [] { new ScheduleActivityDecision(Identity.New(ActivityName, ActivityVersion, PositionalName).ScheduleId()) })); }
public void Schedule_next_item_when_total_number_of_scheduling_activity_events_exceeds_allowed_limit() { _eventsBuilder.AddProcessedEvents(_eventGraphBuilder.WorkflowStartedEvent()); _eventsBuilder.AddProcessedEvents(ActivityCompletedEventGraph(ActivityName, ActivityVersion, PositionalName)); _eventsBuilder.AddProcessedEvents(ActivityCompletedEventGraph(ActivityName, ActivityVersion, PositionalName)); _eventsBuilder.AddProcessedEvents(ActivityCompletedEventGraph(ActivityName, ActivityVersion, PositionalName)); _eventsBuilder.AddNewEvents(ActivityCompletedEventGraph(ActivityName, ActivityVersion, PositionalName)); var workflow = new WorkflowToRescheduleActivityUpToLimit(3); var decisions = workflow.Decisions(_eventsBuilder.Result()); Assert.That(decisions, Is.EqualTo(new[] { new CompleteWorkflowDecision("completed") })); }
public void Consider_only_last_similar_events_for_activity_when_counting_the_rescheduled_events() { var workflow = new WorkflowToRescheduleActivityUpToLimit(3); _eventsBuilder.AddProcessedEvents(_eventGraphBuilder.WorkflowStartedEvent()); _eventsBuilder.AddProcessedEvents(ActivityCompletedEventGraph(ActivityName, ActivityVersion, PositionalName)); _eventsBuilder.AddProcessedEvents(ActivityCompletedEventGraph(ActivityName, ActivityVersion, PositionalName)); _eventsBuilder.AddProcessedEvents(ActivityFailedEventGraph(ActivityName, ActivityVersion, PositionalName)); _eventsBuilder.AddProcessedEvents(ActivityCompletedEventGraph(ActivityName, ActivityVersion, PositionalName)); _eventsBuilder.AddNewEvents(ActivityCompletedEventGraph(ActivityName, ActivityVersion, PositionalName)); var decisions = workflow.Decisions(_eventsBuilder.Result()); Assert.That(decisions, Is.EqualTo(new[] { new ScheduleActivityDecision(Identity.New(ActivityName, ActivityVersion, PositionalName).ScheduleId()) })); }