public void CodeFixProviders_Named_Properly() { var codeFixProviders = GetCodeFixProviderTypes(RuleFinder.GetPackagedRuleAssemblies()); foreach (var codeFixProvider in codeFixProviders) { var analyzerName = codeFixProvider.FullName.Replace(RuleDetailBuilder.CodeFixProviderSuffix, ""); if (codeFixProvider.Assembly.GetType(analyzerName) == null) { Assert.Fail( "CodeFixProvider '{0}' has no matching DiagnosticAnalyzer.", codeFixProvider.Name); } } }
public void CodeFixProviders_Have_Title() { var codeFixProviders = GetCodeFixProviderTypes(RuleFinder.GetPackagedRuleAssemblies()); foreach (var codeFixProvider in codeFixProviders) { var titles = RuleDetailBuilder.GetCodeFixTitles(codeFixProvider); if (!titles.Any()) { Assert.Fail( "CodeFixProvider '{0}' has no title field.", codeFixProvider.Name); } } }
public void AbstractDiagnosticAnalyzer_Should_Have_No_RuleAttribute() { var analyzers = RuleFinder.GetPackagedRuleAssemblies() .SelectMany(assembly => assembly.GetTypes()) .Where(t => t.IsSubclassOf(typeof(DiagnosticAnalyzer)) && t.IsAbstract) .ToList(); foreach (var analyzer in analyzers) { var ruleDescriptor = analyzer.GetCustomAttributes <RuleAttribute>().SingleOrDefault(); if (ruleDescriptor != null) { Assert.Fail("RuleAttribute is added to abstract DiagnosticAnalyzer '{0}'", analyzer.Name); } } }
public void GetPackagedRuleAssembly() { Assert.AreEqual(3, RuleFinder.GetPackagedRuleAssemblies().Count()); }