|
4 | 4 | using System.Collections.Generic;
|
5 | 5 | using System.Linq;
|
6 | 6 |
|
7 |
| -namespace Dprint.Plugins.Roslyn.Configuration |
| 7 | +namespace Dprint.Plugins.Roslyn.Configuration; |
| 8 | + |
| 9 | +[TestFixture] |
| 10 | +public class ConfigurationHelperTests |
8 | 11 | {
|
9 |
| - [TestFixture] |
10 |
| - public class ConfigurationHelperTests |
11 |
| - { |
12 | 12 | [Test]
|
13 | 13 | public void HandlePluginConfig_VariousCorrectInput_Handles()
|
14 | 14 | {
|
15 |
| - var pluginConfig = new Dictionary<string, object>() |
16 |
| - { |
17 |
| - { "csharp.indentBlock", true }, |
18 |
| - { "csharp.labelPositioning", "noIndent" }, |
19 |
| - }; |
20 |
| - var context = new ConfigurationResolutionContext(pluginConfig, new AdhocWorkspace().Options); |
21 |
| - ConfigurationHelpers.HandlePluginConfig(context, typeof(CSharpFormattingOptions), "csharp."); |
22 |
| - var options = context.GetOptions(); |
| 15 | + var pluginConfig = new Dictionary<string, object>() |
| 16 | + { |
| 17 | + { "csharp.indentBlock", true }, |
| 18 | + { "csharp.labelPositioning", "noIndent" }, |
| 19 | + }; |
| 20 | + var context = new ConfigurationResolutionContext(pluginConfig, new AdhocWorkspace().Options); |
| 21 | + ConfigurationHelpers.HandlePluginConfig(context, typeof(CSharpFormattingOptions), "csharp."); |
| 22 | + var options = context.GetOptions(); |
23 | 23 |
|
24 |
| - Assert.That(options.GetOption(CSharpFormattingOptions.IndentBlock), Is.True); |
25 |
| - Assert.That(options.GetOption(CSharpFormattingOptions.LabelPositioning), Is.EqualTo(LabelPositionOptions.NoIndent)); |
26 |
| - Assert.That(pluginConfig.Count, Is.EqualTo(0)); // should have cleared the plugin config |
| 24 | + Assert.That(options.GetOption(CSharpFormattingOptions.IndentBlock), Is.True); |
| 25 | + Assert.That(options.GetOption(CSharpFormattingOptions.LabelPositioning), Is.EqualTo(LabelPositionOptions.NoIndent)); |
| 26 | + Assert.That(pluginConfig.Count, Is.EqualTo(0)); // should have cleared the plugin config |
27 | 27 | }
|
28 | 28 |
|
29 | 29 | [Test]
|
30 | 30 | public void HandlePluginConfig_IncorrectInput_Diagnostics()
|
31 | 31 | {
|
32 |
| - var pluginConfig = new Dictionary<string, object>() |
33 |
| - { |
34 |
| - { "csharp.indentBlock", "asdf" }, |
35 |
| - { "csharp.labelPositioning", "testing" }, |
36 |
| - { "csharp.unknown", true } |
37 |
| - }; |
38 |
| - var context = new ConfigurationResolutionContext(pluginConfig, new AdhocWorkspace().Options); |
39 |
| - ConfigurationHelpers.HandlePluginConfig(context, typeof(CSharpFormattingOptions), "csharp."); |
40 |
| - var diagnostics = context.GetDiagnostics().ToList(); |
41 |
| - Assert.That(diagnostics.Count, Is.EqualTo(3)); |
42 |
| - Assert.That(diagnostics[0].PropertyName, Is.EqualTo("csharp.indentBlock")); |
43 |
| - Assert.That(diagnostics[0].Message, Is.EqualTo("Property value was expected to be Boolean, but was String.")); |
44 |
| - Assert.That(diagnostics[1].PropertyName, Is.EqualTo("csharp.labelPositioning")); |
45 |
| - Assert.That(diagnostics[1].Message, Is.EqualTo("Could not parse string 'testing' to enum: Microsoft.CodeAnalysis.CSharp.Formatting.LabelPositionOptions")); |
46 |
| - Assert.That(diagnostics[2].PropertyName, Is.EqualTo("csharp.unknown")); |
47 |
| - Assert.That(diagnostics[2].Message, Is.EqualTo("Could not find property on CSharpFormattingOptions with name 'Unknown'")); |
48 |
| - Assert.That(pluginConfig.Count, Is.EqualTo(0)); // should have cleared the plugin config |
| 32 | + var pluginConfig = new Dictionary<string, object>() |
| 33 | + { |
| 34 | + { "csharp.indentBlock", "asdf" }, |
| 35 | + { "csharp.labelPositioning", "testing" }, |
| 36 | + { "csharp.unknown", true } |
| 37 | + }; |
| 38 | + var context = new ConfigurationResolutionContext(pluginConfig, new AdhocWorkspace().Options); |
| 39 | + ConfigurationHelpers.HandlePluginConfig(context, typeof(CSharpFormattingOptions), "csharp."); |
| 40 | + var diagnostics = context.GetDiagnostics().ToList(); |
| 41 | + Assert.That(diagnostics.Count, Is.EqualTo(3)); |
| 42 | + Assert.That(diagnostics[0].PropertyName, Is.EqualTo("csharp.indentBlock")); |
| 43 | + Assert.That(diagnostics[0].Message, Is.EqualTo("Property value was expected to be Boolean, but was String.")); |
| 44 | + Assert.That(diagnostics[1].PropertyName, Is.EqualTo("csharp.labelPositioning")); |
| 45 | + Assert.That(diagnostics[1].Message, Is.EqualTo("Could not parse string 'testing' to enum: Microsoft.CodeAnalysis.CSharp.Formatting.LabelPositionOptions")); |
| 46 | + Assert.That(diagnostics[2].PropertyName, Is.EqualTo("csharp.unknown")); |
| 47 | + Assert.That(diagnostics[2].Message, Is.EqualTo("Could not find property on CSharpFormattingOptions with name 'Unknown'")); |
| 48 | + Assert.That(pluginConfig.Count, Is.EqualTo(0)); // should have cleared the plugin config |
49 | 49 | }
|
50 |
| - } |
51 | 50 | }
|
0 commit comments