public void SqaleSubCharacteristicAttribute() { var analyzers = new RuleFinder().GetAllAnalyzerTypes(); foreach (var analyzer in analyzers) { var noSqaleCount = analyzer.GetCustomAttributes<NoSqaleRemediationAttribute>().Count(); var subCharacteristicCount = analyzer.GetCustomAttributes<SqaleSubCharacteristicAttribute>().Count(); if (noSqaleCount > 0) { if (subCharacteristicCount > 0) { Assert.Fail( "SqaleSubCharacteristicAttribute can only be assigned to DiagnosticAnalyzers that have a SQALE " + "remediation function, '{0}' has NoSqaleRemediationAttribute", analyzer.Name); } } else { if (subCharacteristicCount != 1) { Assert.Fail( "Only one SqaleSubCharacteristicAttribute can be assigned to DiagnosticAnalyzers, '{0}' has {1}", analyzer.Name, subCharacteristicCount); } } } }
public void SingleSqaleRemediationAttribute() { var analyzers = new RuleFinder().GetAllAnalyzerTypes(); foreach (var analyzer in analyzers) { var count = analyzer.GetCustomAttributes<SqaleRemediationAttribute>().Count(); if (count != 1) { Assert.Fail("Only one SqaleRemediationAttribute can be assigned to DiagnosticAnalyzers, '{0}' has {1}", analyzer.Name, count); } } }
private static RuleDetail GetRuleDetail(Type analyzerType) { var rule = analyzerType.GetCustomAttributes <RuleAttribute>().Single(); var ruleDetail = new RuleDetail { Key = rule.Key, Title = rule.Title, Severity = rule.Severity.ToString().ToUpper(CultureInfo.InvariantCulture), IsActivatedByDefault = rule.IsActivatedByDefault, Description = GetResourceHtml(analyzerType, rule), IsTemplate = RuleFinder.IsRuleTemplate(analyzerType) }; GetParameters(analyzerType, ruleDetail); GetTags(analyzerType, ruleDetail); GetSqale(analyzerType, ruleDetail); return(ruleDetail); }
private static RuleDetail GetRuleDetail(Type analyzerType, AnalyzerLanguage language) { var rule = analyzerType.GetCustomAttributes <RuleAttribute>().Single(); var ruleDetail = new RuleDetail { Key = rule.Key, Title = rule.Title, Severity = rule.Severity.ToString(), IdeSeverity = (int)rule.Severity.ToDiagnosticSeverity(), IsActivatedByDefault = rule.IsActivatedByDefault, Description = GetResourceHtml(rule, language), IsTemplate = RuleFinder.IsRuleTemplate(analyzerType) }; GetParameters(analyzerType, ruleDetail); GetTags(analyzerType, ruleDetail); GetSqale(analyzerType, ruleDetail); GetCodeFixNames(analyzerType, ruleDetail); return(ruleDetail); }
public void GetAllAnalyzerTypes() { var finder = new RuleFinder(); var countParameterless = finder.GetParameterlessAnalyzerTypes().Count(); finder.GetAllAnalyzerTypes().Count().Should().BeGreaterThan(countParameterless); }
public void GetAnalyzerTypes() { var analyzers = new RuleFinder().GetAnalyzerTypes(SonarLint.Common.AnalyzerLanguage.CSharp); analyzers.Should().Contain(typeof(EmptyStatement)); }