public void By_default_returns_fail_workflow_decision()
        {
            var workflow = new WorkflowWithTimer();

            _builder.AddNewEvents(_graphBuilder.TimerStartFailedGraph(_identity.ScheduleId(), TimerFailureCause).ToArray());
            var decisions = workflow.Decisions(_builder.Result());

            Assert.That(decisions, Is.EqualTo(new [] { new FailWorkflowDecision("TIMER_START_FAILED", TimerFailureCause) }));
        }
示例#2
0
        public void By_default_schedule_children()
        {
            _builder.AddNewEvents(_graphBuilder.TimerFiredGraph(_identity.ScheduleId(), TimeSpan.Zero).ToArray());
            var workflow = new WorkflowWithTimer();

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

            Assert.That(decisions, Is.EqualTo(new [] { new ScheduleLambdaDecision(Identity.Lambda(LambdaName).ScheduleId(), "input") }));
        }
示例#3
0
        public void Schedule_children_when_reset_timer_is_fired()
        {
            const string runId = "runid";

            _builder.AddWorkflowRunId(runId);
            _builder.AddNewEvents(_graphBuilder.TimerFiredGraph(_identity.ScheduleId(runId + "Reset"), TimeSpan.Zero).ToArray());
            var workflow = new WorkflowWithTimer();

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

            Assert.That(decisions, Is.EqualTo(new[] { new ScheduleLambdaDecision(Identity.Lambda(LambdaName).ScheduleId(), "input") }));
        }
示例#4
0
        public void Returns_schedule_timer_decision_if_timer_is_fired_to_reschedule_a_timer_item_using_old_data_object()
        {
            var workflow = new WorkflowWithTimer();

            _builder.AddNewEvents(_graphBuilder.TimerFiredGraph(_identity.ScheduleId(), _fireAfter, true).ToArray());

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

            var scheduleId = Identity.Timer(TimerName).ScheduleId();

            Assert.That(decisions.Length, Is.EqualTo(1));
            decisions[0].AssertWorkflowItemTimer(scheduleId, TimeSpan.Zero);
        }