public void SubWorkflow() { // Arrange var workplan = WorkplanDummy.CreateSub(); var step = new SubworkflowStep(workplan); var exits = workplan.Connectors.Where(c => c.Classification.HasFlag(NodeClassification.Exit)).ToArray(); // Act var trans = step.CreateInstance(null); // Assert Assert.IsInstanceOf <SubworkflowTransition>(trans); Assert.AreEqual(2, step.Outputs.Length); Assert.AreEqual(2, step.OutputDescriptions.Length); var success = step.OutputDescriptions[0]; Assert.AreEqual("End", success.Name); Assert.AreEqual(OutputType.Success, success.OutputType); Assert.AreEqual(exits[0].Id, success.MappingValue); var failed = step.OutputDescriptions[1]; Assert.AreEqual("Failed", failed.Name); Assert.AreEqual(OutputType.Failure, failed.OutputType); Assert.AreEqual(exits[1].Id, failed.MappingValue); }
public static WorkplanDummy CreateWithSub() { var workplan = new WorkplanDummy(); var inital = Workflow.CreateConnector("Start", NodeClassification.Start); var complete = Workflow.CreateConnector("End", NodeClassification.End); workplan.Add(inital, complete); var subPlan = CreateSub(); subPlan.Id = 42; var sub = new SubworkflowStep(subPlan); sub.Inputs[0] = inital; sub.Outputs[0] = sub.Outputs[0] = complete; workplan.Add(sub); return(workplan); }