Skip to content

Commit

Permalink
added a test for analyzer preservation
Browse files Browse the repository at this point in the history
  • Loading branch information
filipw committed Nov 24, 2020
1 parent 76f990b commit 5f2f7eb
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions tests/OmniSharp.MSBuild.Tests/ProjectWithAnalyzersTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,35 @@ public async Task WhenProjectEditorConfigIsChangedThenAnalyzerConfigurationUpdat
}
}

[Fact]
public async Task WhenProjectChangesAnalyzerConfigurationIsPreserved()
{
var emitter = new ProjectLoadTestEventEmitter();

using (var testProject = await TestAssets.Instance.GetTestProjectAsync("ProjectWithAnalyzersAndEditorConfig"))
using (var host = CreateMSBuildTestHost(
testProject.Directory,
emitter.AsExportDescriptionProvider(LoggerFactory),
TestHelpers.GetConfigurationDataWithAnalyzerConfig(roslynAnalyzersEnabled: true, editorConfigEnabled: true)))
{
var initialProject = host.Workspace.CurrentSolution.Projects.Single();

var analyzerConfigDocument = initialProject.AnalyzerConfigDocuments.Single();

var firstDiagnosticsSet = await host.RequestCodeCheckAsync(Path.Combine(testProject.Directory, "Program.cs"));
Assert.NotEmpty(firstDiagnosticsSet.QuickFixes);
Assert.Contains(firstDiagnosticsSet.QuickFixes.OfType<DiagnosticLocation>(), x => x.Id == "IDE0005" && x.LogLevel == "Error");

// report reloading of a project
await NotifyFileChanged(host, initialProject.FilePath);
emitter.WaitForProjectUpdate();

var secondDiagnosticsSet = await host.RequestCodeCheckAsync(Path.Combine(testProject.Directory, "Program.cs"));
Assert.NotEmpty(secondDiagnosticsSet.QuickFixes);
Assert.Contains(secondDiagnosticsSet.QuickFixes.OfType<DiagnosticLocation>(), x => x.Id == "IDE0005" && x.LogLevel == "Error");
}
}

[Fact]
public async Task WhenProjectIsLoadedThenItContainsAnalyzerConfigurationFromParentFolder()
{
Expand Down

0 comments on commit 5f2f7eb

Please sign in to comment.