Example #1
0
        public void Reschedule_timer_when_total_number_of_scheduling_is_less_than_allowed_limit()
        {
            var workflow   = new WorkflowToRescheduleActivityWithTimerUpToLimit(2);
            var completed1 = CreateCompletedActivityEventGraph(_activityName, _activityVersion, _positionalName);
            var completed2 = CreateCompletedActivityEventGraph(_activityName, _activityVersion, _positionalName);

            var historyEvents = new WorkflowHistoryEvents(completed2.Concat(completed1), completed2.Last().EventId, completed2.First().EventId);

            var decisions = workflow.NewExecutionFor(historyEvents).Execute();

            Assert.That(decisions, Is.EqualTo(new[] { new ScheduleTimerDecision(Identity.New(_activityName, _activityVersion, _positionalName), TimeSpan.FromSeconds(2), true) }));
        }
Example #2
0
        public void Schedule_next_item_when_total_number_of_activity_scheduling_events_exceeds_configured_limit()
        {
            _eventsBuilder.AddProcessedEvents(_eventGraphBuilder.WorkflowStartedEvent());
            _eventsBuilder.AddProcessedEvents(ActivityCompletedEventGraph(ActivityName, ActivityVersion, PositionalName));
            _eventsBuilder.AddProcessedEvents(ActivityCompletedEventGraph(ActivityName, ActivityVersion, PositionalName));
            _eventsBuilder.AddNewEvents(ActivityCompletedEventGraph(ActivityName, ActivityVersion, PositionalName));
            var workflow = new WorkflowToRescheduleActivityWithTimerUpToLimit(2);

            var decisions = workflow.Decisions(_eventsBuilder.Result());

            Assert.That(decisions, Is.EqualTo(new[] { new CompleteWorkflowDecision("completed") }));
        }
Example #3
0
        public void Schedule_next_item_when_total_number_of_scheduling_events_exceeds_configured_limit()
        {
            var workflow   = new WorkflowToRescheduleActivityWithTimerUpToLimit(2);
            var completed1 = CreateCompletedActivityEventGraph(_activityName, _activityVersion, _positionalName);
            var completed2 = CreateCompletedActivityEventGraph(_activityName, _activityVersion, _positionalName);
            var completed3 = CreateCompletedActivityEventGraph(_activityName, _activityVersion, _positionalName);

            var historyEvents = new WorkflowHistoryEvents(completed3.Concat(completed2.Concat(completed1)), completed3.Last().EventId, completed3.First().EventId);

            var decisions = workflow.NewExecutionFor(historyEvents).Execute();

            Assert.That(decisions, Is.EqualTo(new[] { new CompleteWorkflowDecision("completed") }));
        }
Example #4
0
        public void Reschedule_timer_when_total_number_of_activity_scheduling_is_less_than_allowed_limit()
        {
            _eventsBuilder.AddProcessedEvents(_eventGraphBuilder.WorkflowStartedEvent());
            _eventsBuilder.AddProcessedEvents(ActivityCompletedEventGraph(ActivityName, ActivityVersion, PositionalName));
            _eventsBuilder.AddNewEvents(ActivityCompletedEventGraph(ActivityName, ActivityVersion, PositionalName));
            var workflow = new WorkflowToRescheduleActivityWithTimerUpToLimit(2);

            var decisions = workflow.Decisions(_eventsBuilder.Result()).ToArray();

            var scheduleId = Identity.New(ActivityName, ActivityVersion, PositionalName).ScheduleId();

            Assert.That(decisions.Length, Is.EqualTo(1));
            decisions[0].AssertRescheduleTimer(scheduleId, TimeSpan.FromSeconds(2));
        }