public void Benchmark() { var analyzer = new SpellingAnalyzerCSharp(LengthWordChecker.Four); var allDiagnosticsByProject = Task.WhenAll(Solution.Projects.Select(p => FindSpellingMistakesForProject(p, analyzer))) .GetAwaiter() .GetResult(); }
public async Task operators_are_ignored() { var analyzer = new SpellingAnalyzerCSharp(new WrongWordChecker("operator", "+", "operator+", "string", "Guid", "System.Guid", "op_Addition")); var project = await ReadCodeFileAsProjectAsync("MethodNames.OperatorExamples.csx"); var diagnostics = await GetDiagnosticsAsync(project, analyzer); diagnostics.Should().BeEmpty(); }
public async Task does_not_find_mistakes_for_invocation() { var analyzer = new SpellingAnalyzerCSharp(new WrongWordChecker("System", "Console", "Write", "Line")); var project = await ReadCodeFileAsProjectAsync("MethodNames.Invocation.csx"); var diagnostics = await GetDiagnosticsAsync(project, analyzer); diagnostics.Should().BeEmpty(); }
public async Task name_has_no_spelling_mistakes() { var analyzer = new SpellingAnalyzerCSharp(new AllGoodWordChecker()); var project = await ReadCodeFileAsProjectAsync("TypeName.FirstMiddleLast.csx"); var diagnostics = await GetDiagnosticsAsync(project, analyzer); diagnostics.Should().BeEmpty(); }
public async Task interface_name_spelling_ignores_prefix_letter() { var analyzer = new SpellingAnalyzerCSharp(new WrongWordChecker("I")); var project = await ReadCodeFileAsProjectAsync("TypeName.ISimpleInterfaceExample.csx"); var diagnostics = await GetDiagnosticsAsync(project, analyzer); diagnostics.Should().BeEmpty(); }
public async Task generic_parameter_prefix_is_ignored() { var analyzer = new SpellingAnalyzerCSharp(new WrongWordChecker("T")); var project = await ReadCodeFileAsProjectAsync("GenericType.SimpleExamples.csx"); var diagnostics = await GetDiagnosticsAsync(project, analyzer); diagnostics.Should().BeEmpty(); }
public async Task common_prefixes_are_ignored() { var analyzer = new SpellingAnalyzerCSharp(new WrongWordChecker("_", "m", "m_")); var project = await ReadCodeFileAsProjectAsync("Fields.SimpleExamples.csx"); var diagnostics = await GetDiagnosticsAsync(project, analyzer); diagnostics.Should().BeEmpty(); }
public async Task at_symbol_is_not_checked() { var analyzer = new SpellingAnalyzerCSharp(new WrongWordChecker("@", "@readonly")); var project = await ReadCodeFileAsProjectAsync("LocalVariables.SimpleExamples.csx"); var diagnostics = await GetDiagnosticsAsync(project, analyzer); diagnostics.Should().BeEmpty(); }
public async Task does_not_find_mistakes_in_switch_label_keywords() { var analyzer = new SpellingAnalyzerCSharp(new WrongWordChecker("case", "default")); var project = await ReadCodeFileAsProjectAsync("Label.SimpleExamples.csx"); var diagnostics = await GetDiagnosticsAsync(project, analyzer); diagnostics.Should().BeEmpty(); }
public async Task no_diagnostics_when_all_words_are_ok() { var analyzer = new SpellingAnalyzerCSharp(new AllGoodWordChecker()); var project = await ReadCodeFileAsProjectAsync("LocalVariables.SimpleExamples.csx"); var diagnostics = await GetDiagnosticsAsync(project, analyzer); diagnostics.Should().BeEmpty(); }
public async Task words_in_code_elements_are_ignored() { var word = "ignored"; var analyzer = new SpellingAnalyzerCSharp(new WrongWordChecker(word)); var project = await ReadCodeFileAsProjectAsync("XmlDoc.SimpleExamples.csx"); var diagnostics = await GetDiagnosticsAsync(project, analyzer); diagnostics.Should().BeEmpty(); }
public async Task can_find_mistakes_in_interface_props() { var analyzer = new SpellingAnalyzerCSharp(new WrongWordChecker("Count")); var project = await ReadCodeFileAsProjectAsync("TypeName.ISimpleInterfaceExample.csx"); var diagnostics = (await GetDiagnosticsAsync(project, analyzer)).ToList(); diagnostics.Should().ContainSingle() .Subject.Should() .HaveId("SP3110") .And.HaveLocation(122, 127, "TypeName.ISimpleInterfaceExample.csx") .And.HaveMessageContaining("Count"); }
public async Task can_check_spelling_of_catchs() { var analyzer = new SpellingAnalyzerCSharp(new WrongWordChecker("bad", "Value")); var project = await ReadCodeFileAsProjectAsync("Catch.SimpleExamples.csx"); var diagnostics = (await GetDiagnosticsAsync(project, analyzer)).ToList(); diagnostics.Should().HaveCount(2); diagnostics[0].Should().HaveMessageContaining("bad") .And.HaveLocation(309, 312, "Catch.SimpleExamples.csx"); diagnostics[1].Should().HaveMessageContaining("Value") .And.HaveLocation(312, 317, "Catch.SimpleExamples.csx"); }
public async Task can_find_mistake_in_labeled_variable_declaration() { var analyzer = new SpellingAnalyzerCSharp(new WrongWordChecker("state")); var project = await ReadCodeFileAsProjectAsync("Label.SimpleExamples.csx"); var diagnostics = await GetDiagnosticsAsync(project, analyzer); diagnostics.Should().ContainSingle() .Subject.Should() .HaveId("SP3110") .And.HaveLocation(162, 167, "Label.SimpleExamples.csx") .And.HaveMessageContaining("state"); }
public async Task name_contains_spelling_mistake_in_the_middle() { var analyzer = new SpellingAnalyzerCSharp(new WrongWordChecker("Middle")); var project = await ReadCodeFileAsProjectAsync("TypeName.FirstMiddleLast.csx"); var diagnostics = await GetDiagnosticsAsync(project, analyzer); diagnostics.Should().ContainSingle() .Subject.Should() .HaveId("SP3110") .And.HaveLocation(79, 85, "TypeName.FirstMiddleLast.csx") .And.HaveMessageContaining("Middle"); }
public async Task can_find_mistakes_in_indexer_params() { var analyzer = new SpellingAnalyzerCSharp(new WrongWordChecker("index", "word")); var project = await ReadCodeFileAsProjectAsync("Properties.SimpleExamples.csx"); var diagnostics = (await GetDiagnosticsAsync(project, analyzer)).ToList(); diagnostics.Should().HaveCount(2); diagnostics[0].Should().HaveMessageContaining("index") .And.HaveLocation(484, 489, "Properties.SimpleExamples.csx"); diagnostics[1].Should().HaveMessageContaining("word") .And.HaveLocation(498, 502, "Properties.SimpleExamples.csx"); }
public async Task can_find_mistake_in_struct() { var analyzer = new SpellingAnalyzerCSharp(new WrongWordChecker("Method")); var project = await ReadCodeFileAsProjectAsync("TypeName.SimpleStructExample.csx"); var diagnostics = await GetDiagnosticsAsync(project, analyzer); diagnostics.Should().ContainSingle() .Subject.Should() .HaveId("SP3110") .And.HaveLocation(197, 203, "TypeName.SimpleStructExample.csx") .And.HaveMessageContaining("Method"); }
public async Task interface_name_can_contain_mistakes() { var analyzer = new SpellingAnalyzerCSharp(new WrongWordChecker("Simple", "Interface", "Example")); var project = await ReadCodeFileAsProjectAsync("TypeName.ISimpleInterfaceExample.csx"); var diagnostics = (await GetDiagnosticsAsync(project, analyzer)).ToList(); diagnostics.Should().HaveCount(3); diagnostics[0].Should().HaveMessageContaining("Simple") .And.HaveLocation(79, 85, "TypeName.ISimpleInterfaceExample.csx"); diagnostics[1].Should().HaveMessageContaining("Interface") .And.HaveLocation(85, 94, "TypeName.ISimpleInterfaceExample.csx"); diagnostics[2].Should().HaveMessageContaining("Example") .And.HaveLocation(94, 101, "TypeName.ISimpleInterfaceExample.csx"); }
public async Task can_find_mistakes_in_enums(string expectedWord, int expectedStart) { var expectedEnd = expectedStart + expectedWord.Length; var analyzer = new SpellingAnalyzerCSharp(new WrongWordChecker(expectedWord)); var project = await ReadCodeFileAsProjectAsync("Enum.SimpleExamples.csx"); var diagnostics = await GetDiagnosticsAsync(project, analyzer); diagnostics.Should().ContainSingle() .Subject.Should() .HaveId("SP3110") .And.HaveLocation(expectedStart, expectedEnd, "Enum.SimpleExamples.csx") .And.HaveMessageContaining(expectedWord); }
public async Task name_contains_individual_mistakes_for_all_words() { var analyzer = new SpellingAnalyzerCSharp(new WrongWordChecker("First", "Middle", "Last")); var project = await ReadCodeFileAsProjectAsync("TypeName.FirstMiddleLast.csx"); var diagnostics = (await GetDiagnosticsAsync(project, analyzer)).ToList(); diagnostics.Should().HaveCount(3); diagnostics[0].Should().HaveMessageContaining("First") .And.HaveLocation(74, 79, "TypeName.FirstMiddleLast.csx"); diagnostics[1].Should().HaveMessageContaining("Middle") .And.HaveLocation(79, 85, "TypeName.FirstMiddleLast.csx"); diagnostics[2].Should().HaveMessageContaining("Last") .And.HaveLocation(85, 89, "TypeName.FirstMiddleLast.csx"); }
public async Task struct_name_can_contain_mistakes() { var analyzer = new SpellingAnalyzerCSharp(new WrongWordChecker("Simple", "Struct", "Example")); var project = await ReadCodeFileAsProjectAsync("TypeName.SimpleStructExample.csx"); var diagnostics = (await GetDiagnosticsAsync(project, analyzer)).ToList(); diagnostics.Should().HaveCount(3); diagnostics[0].Should().HaveMessageContaining("Simple") .And.HaveLocation(75, 81, "TypeName.SimpleStructExample.csx"); diagnostics[1].Should().HaveMessageContaining("Struct") .And.HaveLocation(81, 87, "TypeName.SimpleStructExample.csx"); diagnostics[2].Should().HaveMessageContaining("Example") .And.HaveLocation(87, 94, "TypeName.SimpleStructExample.csx"); }
static async Task RunTestAsync(Solution solution) { var analyzer = new SpellingAnalyzerCSharp(ThisSolutionPerfSpec.LengthWordChecker.Two); await Task.WhenAll(solution.Projects.Select(p => FindSpellingMistakesForProject(p, analyzer))).ConfigureAwait(false); }
static async Task <ImmutableArray <Diagnostic> > FindSpellingMistakesForProject(Project project, SpellingAnalyzerCSharp analyzer) { var compilation = await project.GetCompilationAsync().ConfigureAwait(false); var diagnostics = await compilation .WithAnalyzers(ImmutableArray.Create <DiagnosticAnalyzer>(analyzer)) .GetAnalyzerDiagnosticsAsync() .ConfigureAwait(false); return(diagnostics); }