public void Can_be_returned_as_custom_action()
        {
            var workflowStartedEventGraph = _eventGraphBuilder.WorkflowStartedEvent("input");
            var workflowStartedEvent      = new WorkflowStartedEvent(workflowStartedEventGraph);

            _eventsBuilder.AddProcessedEvents(workflowStartedEventGraph);
            _eventsBuilder.AddNewEvents(_eventGraphBuilder
                                        .ActivityCompletedGraph(Identity.New("activityName", "1.0").ScheduleId(), "id", "result").ToArray());

            var workflow = new WorkflowToRestart();

            var decisions = workflow.Decisions(_eventsBuilder.Result());
            var decision  = decisions.Single().SwfDecision();

            Assert.That(decision.DecisionType, Is.EqualTo(DecisionType.ContinueAsNewWorkflowExecution));
            var attr = decision.ContinueAsNewWorkflowExecutionDecisionAttributes;

            Assert.That(attr.Input, Is.EqualTo(workflowStartedEvent.Input));
            Assert.That(attr.ChildPolicy.Value, Is.EqualTo(workflowStartedEvent.ChildPolicy));
            Assert.That(attr.ExecutionStartToCloseTimeout, Is.EqualTo(workflowStartedEvent.ExecutionStartToCloseTimeout.TotalSeconds.ToString()));
            Assert.That(attr.TagList, Is.EqualTo(workflowStartedEvent.TagList));
            Assert.That(attr.TaskList.Name, Is.EqualTo(workflowStartedEvent.TaskList));
            Assert.That(attr.TaskPriority, Is.EqualTo(workflowStartedEvent.TaskPriority.ToString()));
            Assert.That(attr.TaskStartToCloseTimeout, Is.EqualTo(workflowStartedEvent.TaskStartToCloseTimeout.TotalSeconds.ToString()));
        }
示例#2
0
        public void Can_be_returned_as_custom_action()
        {
            var workflowStartedEventGraph = _builder.WorkflowStartedEvent("input");
            var workflowStartedEvent      = new WorkflowStartedEvent(workflowStartedEventGraph);
            var activityCompletedEvents   = _builder.ActivityCompletedGraph(Identity.New("activityName", "1.0"), "id", "result");
            var activityCompletedEvent    = new ActivityCompletedEvent(activityCompletedEvents.First(), activityCompletedEvents);
            var eventGraph     = activityCompletedEvents.Concat(new[] { workflowStartedEventGraph });
            var workflowEvents = new WorkflowHistoryEvents(eventGraph);
            var workflow       = new WorkflowToRestart();

            workflow.NewExecutionFor(workflowEvents);

            var restartWorkflowAction = (RestartWorkflowAction)activityCompletedEvent.Interpret(workflow);

            Assert.That(restartWorkflowAction.Input, Is.EqualTo(workflowStartedEvent.Input));
            Assert.That(restartWorkflowAction.ChildPolicy, Is.EqualTo(workflowStartedEvent.ChildPolicy));
            Assert.That(restartWorkflowAction.ExecutionStartToCloseTimeout, Is.EqualTo(workflowStartedEvent.ExecutionStartToCloseTimeout));
            Assert.That(restartWorkflowAction.TagList, Is.EqualTo(workflowStartedEvent.TagList));
            Assert.That(restartWorkflowAction.TaskList, Is.EqualTo(workflowStartedEvent.TaskList));
            Assert.That(restartWorkflowAction.TaskPriority, Is.EqualTo(workflowStartedEvent.TaskPriority));
            Assert.That(restartWorkflowAction.TaskStartToCloseTimeout, Is.EqualTo(workflowStartedEvent.TaskStartToCloseTimeout));
        }