Ejemplo n.º 1
0
        /// <summary>
        /// Evaluates the rule and its sub rules
        /// </summary>
        /// <param name="runner"></param>
        /// <param name="priority">the priority level : a rule can be activated only if its priority level == priority</param>
        /// <param name="instance">The instance on which the rule must be evaluated</param>
        /// <param name="ruleConditions">the rule conditions to be activated</param>
        /// <returns>the number of actions that were activated during this evaluation</returns>
        public bool Evaluate(Tests.Runner.Runner runner, Generated.acceptor.RulePriority priority, Utils.IModelElement instance, List <RuleCondition> ruleConditions)
        {
            bool retVal = false;

            long start = System.Environment.TickCount;

            if (Disabled == false && ActivationPriorities.Contains(priority))
            {
                foreach (RuleCondition ruleCondition in RuleConditions)
                {
                    retVal = ruleCondition.Evaluate(runner, priority, instance, ruleConditions);
                    if (retVal)
                    {
                        break;
                    }
                }
            }

            // Guard evaluation execution time
            long stop = System.Environment.TickCount;
            long span = (stop - start);

            ExecutionTimeInMilli += span;

            return(retVal);
        }
        /// <summary>
        /// Executes the test cases for this test sequence
        /// </summary>
        /// <param name="runner">The runner used to execute the test case</param>
        /// <returns>the number of failed test cases</returns>
        public int ExecuteAllTestCases(Tests.Runner.Runner runner)
        {
            int retVal = 0;

            foreach (DataDictionary.Tests.TestCase testCase in TestCases)
            {
                int currentFailed = runner.FailedExpectations().Count;
                runner.RunUntilStep(null);
                if (runner.FailedExpectations().Count > currentFailed)
                {
                    retVal = retVal + 1;
                }
            }

            return(retVal);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Evaluates the rule and its sub rules
        /// </summary>
        /// <param name="runner"></param>
        /// <param name="priority">the priority level : a rule can be activated only if its priority level == priority</param>
        /// <param name="instance">The instance on which the rule must be evaluated</param>
        /// <param name="ruleConditions">the rule conditions to be activated</param>
        /// <returns>the number of actions that were activated during this evaluation</returns>
        public bool Evaluate(Tests.Runner.Runner runner, Generated.acceptor.RulePriority priority, Utils.IModelElement instance, List <RuleCondition> ruleConditions)
        {
            bool retVal = false;

            Interpreter.InterpretationContext context = new Interpreter.InterpretationContext(instance);
            retVal = EvaluatePreConditions(context);

            if (retVal)
            {
                foreach (Rule subRule in SubRules)
                {
                    subRule.Evaluate(runner, priority, instance, ruleConditions);
                }

                if (EnclosingRule.getPriority() == priority)
                {
                    ruleConditions.Add(this);
                }
            }


            return(retVal);
        }