Skip to content

Commit a85eedf

Browse files
committed
Use lists for analyzer test transforms
1 parent 03f41c5 commit a85eedf

3 files changed

Lines changed: 26 additions & 21 deletions

File tree

StyleCop.Analyzers/StyleCop.Analyzers.Test/SpacingRules/SA1005UnitTests.cs

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -268,21 +268,18 @@ public class Bar
268268
await VerifyCSharpDiagnosticAsync(testCode, EmptyDiagnosticResults, CancellationToken.None).ConfigureAwait(false);
269269

270270
// Verify that this works if the project was configured to treat documentation comments as regular comments
271-
var test = new CSharpTest
271+
await new CSharpTest
272272
{
273273
TestCode = testCode,
274-
};
275-
276-
var baseSolutionTransform = test.SolutionTransform;
277-
test.SolutionTransform = (solution, projectId) =>
278-
{
279-
solution = baseSolutionTransform(solution, projectId);
280-
var project = solution.GetProject(projectId);
281-
282-
return solution.WithProjectParseOptions(projectId, project.ParseOptions.WithDocumentationMode(DocumentationMode.None));
283-
};
284-
285-
await test.RunAsync(CancellationToken.None).ConfigureAwait(false);
274+
SolutionTransforms =
275+
{
276+
(solution, projectId) =>
277+
{
278+
var project = solution.GetProject(projectId);
279+
return solution.WithProjectParseOptions(projectId, project.ParseOptions.WithDocumentationMode(DocumentationMode.None));
280+
},
281+
},
282+
}.RunAsync(CancellationToken.None).ConfigureAwait(false);
286283
}
287284
}
288285
}

StyleCop.Analyzers/StyleCop.Analyzers.Test/Verifiers/GenericAnalyzerTest.cs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,9 @@ public string FixedCode
9292

9393
public int NumberOfFixAllIterations { get; set; } = 1;
9494

95-
public Func<OptionSet, OptionSet> OptionsTransform { get; set; } = options => options;
95+
public List<Func<OptionSet, OptionSet>> OptionsTransforms { get; } = new List<Func<OptionSet, OptionSet>>();
9696

97-
public Func<Solution, ProjectId, Solution> SolutionTransform { get; set; } = (solution, _) => solution;
97+
public List<Func<Solution, ProjectId, Solution>> SolutionTransforms { get; } = new List<Func<Solution, ProjectId, Solution>>();
9898

9999
public async Task RunAsync(CancellationToken cancellationToken)
100100
{
@@ -435,12 +435,20 @@ protected virtual Solution CreateSolution(ProjectId projectId, string language)
435435
solution = solution.AddMetadataReference(projectId, MetadataReferences.SystemValueTupleReference);
436436
}
437437

438-
solution.Workspace.Options = this.OptionsTransform(solution.Workspace.Options);
438+
foreach (var transform in this.OptionsTransforms)
439+
{
440+
solution.Workspace.Options = transform(solution.Workspace.Options);
441+
}
439442

440443
ParseOptions parseOptions = solution.GetProject(projectId).ParseOptions;
441444
solution = solution.WithProjectParseOptions(projectId, parseOptions.WithDocumentationMode(DocumentationMode.Diagnose));
442445

443-
return this.SolutionTransform(solution, projectId);
446+
foreach (var transform in this.SolutionTransforms)
447+
{
448+
solution = transform(solution, projectId);
449+
}
450+
451+
return solution;
444452
}
445453

446454
/// <summary>

StyleCop.Analyzers/StyleCop.Analyzers.Test/Verifiers/StyleCopDiagnosticVerifier`1.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,13 @@ internal class CSharpTest : DiagnosticVerifier<TAnalyzer>.CSharpTest
5151

5252
public CSharpTest()
5353
{
54-
this.OptionsTransform = options =>
54+
this.OptionsTransforms.Add(options =>
5555
options
5656
.WithChangedOption(FormattingOptions.IndentationSize, this.Language, this.IndentationSize)
5757
.WithChangedOption(FormattingOptions.TabSize, this.Language, this.TabSize)
58-
.WithChangedOption(FormattingOptions.UseTabs, this.Language, this.UseTabs);
58+
.WithChangedOption(FormattingOptions.UseTabs, this.Language, this.UseTabs));
5959

60-
this.SolutionTransform = (solution, projectId) =>
60+
this.SolutionTransforms.Add((solution, projectId) =>
6161
{
6262
var settings = this.Settings;
6363

@@ -101,7 +101,7 @@ public CSharpTest()
101101
}
102102

103103
return solution;
104-
};
104+
});
105105
}
106106

107107
/// <summary>

0 commit comments

Comments
 (0)