Пример #1
0
        /// <summary>
        ///     Updates the step according to this translation
        /// </summary>
        /// <param name="step"></param>
        public void UpdateStep(Step step)
        {
            Step previousStep = step.PreviousStep;

            foreach (ReqRef reqRef in Requirements)
            {
                if (!IsRequirementPresent(step, reqRef))
                {
                    step.appendRequirements((ReqRef)reqRef.Duplicate());
                }
            }

            int subStepCounter = 1;

            foreach (SubStep subStep in SubSteps)
            {
                bool addSubStep = true;

                if (subStep.ReferencesMessages())
                {
                    addSubStep = step.Messages.Count > 0;
                }

                if (addSubStep)
                {
                    SubStep newSubStep = (SubStep)acceptor.getFactory().createSubStep();
                    newSubStep.setSkipEngine(subStep.getSkipEngine());
                    newSubStep.Comment = subStep.Comment;
                    newSubStep.Name    = subStep.Name;
                    step.appendSubSteps(newSubStep);

                    if (previousStep != null && previousStep.Distance != step.Distance && subStepCounter == 1)
                    {
                        Action newAct   = (Action)acceptor.getFactory().createAction();
                        string distance = step.getDistance();
                        if (!distance.Contains("."))
                        {
                            distance = distance + ".0";
                        }
                        newAct.ExpressionText = "OdometryInterface.UpdateDistance ( " + distance + " )";
                        newSubStep.setSkipEngine(false);
                        newSubStep.appendActions(newAct);
                    }

                    foreach (Action action in subStep.Actions)
                    {
                        Action newAct = (Action)action.Duplicate();
                        newSubStep.appendActions(newAct);
                        Review(newAct);
                    }

                    foreach (Expectation expectation in subStep.Expectations)
                    {
                        Expectation newExp = (Expectation)expectation.Duplicate();
                        newSubStep.appendExpectations(newExp);
                        Review(newExp);
                    }
                }
                subStepCounter++;
            }
        }
Пример #2
0
        public override void visit(SubStep obj, bool visitSubNodes)
        {
            obj.setSkipEngine(false);

            base.visit(obj, visitSubNodes);
        }