private void AddMissingEntries(AnalysisOutput output, AnalyzerLanguage language) { var foundKeys = output.Issues.Select(i => i.RuleId).ToList(); var notFoundKeys = RuleFinder.GetAnalyzerTypes(language) .Select(t => new { Type = t, RuleAttribute = t.GetCustomAttribute <RuleAttribute>() }) .Select(rule => RuleFinder.IsRuleTemplate(rule.Type) ? string.Format(TemplateRuleIdPattern, rule.RuleAttribute.Key) : rule.RuleAttribute.Key) .Where(s => !foundKeys.Contains(s)); foreach (var notFoundKey in notFoundKeys) { output.Issues.Add(new Issue { RuleId = notFoundKey }); } }
protected string GenerateAnalysisInputFile(AnalyzerLanguage language) { var analyzers = new StringBuilder(); foreach (var analyzerType in RuleFinder.GetAnalyzerTypes(language)) { analyzers.Append(GenerateAnalysisInputFileSegment(analyzerType)); } return(GenerateAnalysisInputFile(analyzers.ToString(), GenerateFilesSegment(language))); }
private void CheckIntegrationTestCount(AnalyzerLanguage language) { ValidateLanguageInput(language); CreateMissingExpectedDirectory(language); Assert.AreEqual( RuleFinder.GetAnalyzerTypes(language).Count(), ExpectedDirectory .GetDirectories(language.GetDirectoryName()).First() .GetFiles("S*.json").Count()); }