Esempio n. 1
0
        public TestFlowElement AddConditionalLink(TestActivity sourceActivity, TestFlowConditional flowConditional, TestActivity trueActivity, TestActivity falseActivity)
        {
            if (sourceActivity != null)
            {
                TestFlowStep flowStep = GetFlowStepContainingActionActivity(sourceActivity);
                if (flowStep == null)
                {
                    flowStep             = new TestFlowStep(sourceActivity);
                    flowStep.NextElement = flowConditional;
                    AddTestFlowLink(flowStep);
                    SetStartNode(flowStep);
                }
                else
                {
                    flowStep.NextElement = flowConditional;
                }
            }
            AddTestFlowLink(flowConditional);

            if (trueActivity != null)
            {
                //For loops we need to check if the element already exists with the target activity
                TestFlowStep trueStep = GetFlowStepContainingActionActivity(trueActivity);
                if (trueStep != null)
                {
                    flowConditional.TrueAction = trueStep;
                }
                else
                {
                    flowConditional.TrueAction = new TestFlowStep(trueActivity);
                }
                AddTestFlowLink(flowConditional.TrueAction);
            }
            if (falseActivity != null)
            {
                //For loops we need to check if the element already exists with the target activity
                TestFlowStep falseStep = GetFlowStepContainingActionActivity(falseActivity);
                if (falseStep != null)
                {
                    flowConditional.FalseAction = falseStep;
                }
                else
                {
                    flowConditional.FalseAction = new TestFlowStep(falseActivity);
                }
                AddTestFlowLink(flowConditional.FalseAction);
            }

            if (_startElement == null)
            {
                SetStartNode(flowConditional);
                AddTestFlowLink(flowConditional);
            }
            return(flowConditional);
        }
Esempio n. 2
0
        /// <summary>
        /// Modify the FlowDecision's True or False path to point to a different node
        /// </summary>
        /// <param name="flowConditional">FlowDecision to be updated</param>
        /// <param name="changeTrueAction">true if TrueAction to be changed, false if FalseAction to be changed</param>
        /// <param name="newAction">new activity to be executed on the specified FlowDecision's path</param>
        /// <param name="removeOldNode">wehther we want to remove the old node from Flowchart</param>
        public void ChangeFlowDecisionAction(TestFlowConditional flowConditional, bool changeTrueAction, TestActivity newAction, bool removeOldNode = true)
        {
            // remove old node from Flowchart
            if (removeOldNode)
            {
                if (changeTrueAction)
                {
                    this.Elements.Remove(flowConditional.TrueAction);
                }
                else
                {
                    this.Elements.Remove(flowConditional.FalseAction);
                }
            }

            // add new node to Flowchart
            TestFlowStep newNode = null;

            if (newAction != null)
            {
                newNode = this.GetFlowStepContainingActionActivity(newAction);
                if (newNode == null)
                {
                    newNode = new TestFlowStep(newAction);
                }

                this.AddTestFlowLink(newNode);
            }

            // set new Action
            if (changeTrueAction)
            {
                flowConditional.TrueAction = newNode;
            }
            else
            {
                flowConditional.FalseAction = newNode;
            }
        }
Esempio n. 3
0
 /// <summary>
 /// Modify the FlowDecision's Condition activity and its corresponding hint.
 /// </summary>
 public void ChangeFlowDecisionCondition(TestFlowConditional flowDecision, TestActivity newConditionActivity, List <HintTrueFalse> newHint)
 {
     flowDecision.ConditionValueExpression = newConditionActivity;
     flowDecision.TrueOrFalse = newHint;
 }
Esempio n. 4
0
 /// <summary>
 /// Modify the FlowDecision's Condition and its corresponding hint.
 /// </summary>
 public void ChangeFlowDecisionCondition(TestFlowConditional flowDecision, bool newCondition, List <HintTrueFalse> newHint)
 {
     flowDecision.Condition   = newCondition;
     flowDecision.TrueOrFalse = newHint;
 }
Esempio n. 5
0
 public TestFlowElement AddConditionalLink(TestActivity sourceActivity, TestFlowConditional flowConditional)
 {
     return(AddConditionalLink(sourceActivity, flowConditional, (TestActivity)null, (TestActivity)null));
 }