protected virtual void OnMethod(RunnerEventArgs e)
        {
            OnEvent(AnalyzeMethod, e);

            foreach (IMethodRule rule in method_rules)
            {
                defectCountBeforeCheck = Defects.Count;
                // stop if we reach the user defined defect limit
                if (defectCountBeforeCheck >= DefectsLimit)
                {
                    break;
                }

                // ignore if the visibility does not match user selection
                ApplicabilityScope scope = rule.ApplicabilityScope;
                if ((scope != ApplicabilityScope.All) && !VisibilityCheck(scope, e.CurrentMethod.IsVisible()))
                {
                    continue;
                }

                // ignore the rule on some user defined methods
                if (IgnoreList.IsIgnored(rule, e.CurrentMethod))
                {
                    continue;
                }

                currentRule = rule;
                rule.CheckMethod(e.CurrentMethod);
            }
        }
        private void Analyze()
        {
            counter = 0;

            // apply settings
            Runner.DefectsLimit = Settings.Default.DefectsLimit;

            Runner.SeverityBitmask.ClearAll();
            Runner.SeverityBitmask.SetDown((Severity)Settings.Default.Severity);
            Runner.ConfidenceBitmask.ClearAll();
            Runner.ConfidenceBitmask.SetDown((Confidence)Settings.Default.Confidence);

            // wizard limits this as a "global" (all rule) setting
            ApplicabilityScope scope = (ApplicabilityScope)Settings.Default.Scope;

            foreach (IRule rule in Runner.Rules)
            {
                rule.ApplicabilityScope = scope;
            }

            // activate rules based on user selection
            UpdateActiveRules();

            // Initialize / Run / TearDown
            Runner.Execute();

            // reset rules as the user selected them (since some rules might have
            // turned themselves off is they were not needed for the analysis) so
            // that report used rules correctly
            UpdateActiveRules();

            BeginInvoke((Action)(() => Current = Page.Report));
        }
        static bool VisibilityCheck(ApplicabilityScope scope, bool visible)
        {
            switch (scope)
            {
            case ApplicabilityScope.Visible:
                return(visible);

            case ApplicabilityScope.NonVisible:
                return(!visible);

            default:
                return(true);
            }
        }
		private void CheckApplicabilityScope (string ruleName, ApplicabilityScope applicabilityScope) {
			foreach (IRule rule in runner.Rules) {
				if (String.Compare (ruleName, rule.Name) == 0) 
					Assert.AreEqual (rule.ApplicabilityScope, applicabilityScope);
			}
		}
		public static void CheckApplicabilityScopeFor (IEnumerable<IRule> rules, ApplicabilityScope applicabilityScope)
		{
			foreach (IRule rule in rules) 
				Assert.AreEqual (applicabilityScope, rule.ApplicabilityScope);
		}
Exemple #6
0
		static bool VisibilityCheck (ApplicabilityScope scope, bool visible)
		{
			switch (scope) {
			case ApplicabilityScope.Visible:
				return visible;
			case ApplicabilityScope.NonVisible:
				return !visible;
			default:
				return true;
			}
		}