Skip to content

Commit 9018089

Browse files
committed
Inspection settings tests. Bug fix for all save config tests.
1 parent 45758e7 commit 9018089

File tree

4 files changed

+113
-8
lines changed

4 files changed

+113
-8
lines changed

RubberduckTests/RubberduckTests.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,10 @@
5757
<Reference Include="Moq">
5858
<HintPath>..\packages\Moq.4.2.1507.0118\lib\net40\Moq.dll</HintPath>
5959
</Reference>
60+
<Reference Include="PresentationFramework" />
6061
<Reference Include="System" />
6162
<Reference Include="System.Windows.Forms" />
63+
<Reference Include="WindowsBase" />
6264
</ItemGroup>
6365
<Choose>
6466
<When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
@@ -117,6 +119,7 @@
117119
<Compile Include="Refactoring\RenameTests.cs" />
118120
<Compile Include="Refactoring\ReorderParametersTests.cs" />
119121
<Compile Include="RubberduckParserTests.cs" />
122+
<Compile Include="Settings\CodeInspectionSettingsTests.cs" />
120123
<Compile Include="Settings\TodoSettingsTests.cs" />
121124
<Compile Include="Settings\UnitTestSettingsTests.cs" />
122125
<Compile Include="SourceControlConfig.cs" />
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
using System.Linq;
2+
using Microsoft.VisualStudio.TestTools.UnitTesting;
3+
using Rubberduck.Inspections;
4+
using Rubberduck.Settings;
5+
using Rubberduck.UI.Settings;
6+
7+
namespace RubberduckTests.Settings
8+
{
9+
[TestClass]
10+
public class CodeInspectionSettingsTests
11+
{
12+
private Configuration GetDefaultConfig()
13+
{
14+
var inspectionSettings = new CodeInspectionSettings
15+
{
16+
CodeInspections = new[]
17+
{
18+
new CodeInspectionSetting("DoNotShowInspection", "Do not show me", CodeInspectionType.LanguageOpportunities, CodeInspectionSeverity.DoNotShow, CodeInspectionSeverity.DoNotShow),
19+
new CodeInspectionSetting("HintInspection", "I'm a hint", CodeInspectionType.LanguageOpportunities, CodeInspectionSeverity.Hint, CodeInspectionSeverity.Hint),
20+
new CodeInspectionSetting("SuggestionInspection", "I'm a suggestion", CodeInspectionType.MaintainabilityAndReadabilityIssues, CodeInspectionSeverity.Suggestion, CodeInspectionSeverity.Suggestion),
21+
new CodeInspectionSetting("WarningInspection", "I'm a warning", CodeInspectionType.CodeQualityIssues, CodeInspectionSeverity.Warning, CodeInspectionSeverity.Warning),
22+
new CodeInspectionSetting("ErrorInspection", "FIX ME!", CodeInspectionType.CodeQualityIssues, CodeInspectionSeverity.Error, CodeInspectionSeverity.Error),
23+
new CodeInspectionSetting("NondefaultSeverityInspection", "I do not have my original severity", CodeInspectionType.LanguageOpportunities, CodeInspectionSeverity.Warning, CodeInspectionSeverity.DoNotShow)
24+
}
25+
};
26+
27+
var userSettings = new UserSettings(null, null, inspectionSettings, null, null);
28+
return new Configuration(userSettings);
29+
}
30+
31+
private Configuration GetNondefaultConfig()
32+
{
33+
var inspectionSettings = new CodeInspectionSettings
34+
{
35+
CodeInspections = new[]
36+
{
37+
new CodeInspectionSetting("DoNotShowInspection", "Do not show me", CodeInspectionType.LanguageOpportunities, CodeInspectionSeverity.DoNotShow, CodeInspectionSeverity.Warning),
38+
new CodeInspectionSetting("HintInspection", "I'm a hint", CodeInspectionType.LanguageOpportunities, CodeInspectionSeverity.Hint, CodeInspectionSeverity.Suggestion),
39+
new CodeInspectionSetting("SuggestionInspection", "I'm a suggestion", CodeInspectionType.MaintainabilityAndReadabilityIssues, CodeInspectionSeverity.Suggestion, CodeInspectionSeverity.Hint),
40+
new CodeInspectionSetting("WarningInspection", "I'm a warning", CodeInspectionType.CodeQualityIssues, CodeInspectionSeverity.Warning, CodeInspectionSeverity.Error),
41+
new CodeInspectionSetting("ErrorInspection", "FIX ME!", CodeInspectionType.CodeQualityIssues, CodeInspectionSeverity.Error, CodeInspectionSeverity.DoNotShow),
42+
new CodeInspectionSetting("NondefaultSeverityInspection", "I do not have my original severity", CodeInspectionType.LanguageOpportunities, CodeInspectionSeverity.Warning, CodeInspectionSeverity.Error)
43+
}
44+
};
45+
46+
var userSettings = new UserSettings(null, null, inspectionSettings, null, null);
47+
return new Configuration(userSettings);
48+
}
49+
50+
[TestMethod]
51+
public void SaveConfigWorks()
52+
{
53+
var customConfig = GetNondefaultConfig();
54+
var viewModel = new InspectionSettingsViewModel(customConfig);
55+
56+
var config = GetDefaultConfig();
57+
viewModel.UpdateConfig(config);
58+
59+
Assert.IsTrue(config.UserSettings.CodeInspectionSettings.CodeInspections.SequenceEqual(
60+
viewModel.InspectionSettings.SourceCollection.OfType<CodeInspectionSetting>()));
61+
}
62+
63+
[TestMethod]
64+
public void SetDefaultsWorks()
65+
{
66+
var viewModel = new InspectionSettingsViewModel(GetNondefaultConfig());
67+
68+
var defaultConfig = GetDefaultConfig();
69+
viewModel.SetToDefaults(defaultConfig);
70+
71+
Assert.IsTrue(defaultConfig.UserSettings.CodeInspectionSettings.CodeInspections.SequenceEqual(
72+
viewModel.InspectionSettings.SourceCollection.OfType<CodeInspectionSetting>()));
73+
}
74+
75+
[TestMethod]
76+
public void InspectionsAreSetInCtor()
77+
{
78+
var defaultConfig = GetDefaultConfig();
79+
var viewModel = new InspectionSettingsViewModel(defaultConfig);
80+
81+
Assert.IsTrue(defaultConfig.UserSettings.CodeInspectionSettings.CodeInspections.SequenceEqual(
82+
viewModel.InspectionSettings.SourceCollection.OfType<CodeInspectionSetting>()));
83+
}
84+
85+
[TestMethod]
86+
public void InspectionSeveritiesAreUpdated()
87+
{
88+
var defaultConfig = GetDefaultConfig();
89+
var viewModel = new InspectionSettingsViewModel(defaultConfig);
90+
91+
viewModel.InspectionSettings.SourceCollection.OfType<CodeInspectionSetting>().First().Severity =
92+
GetNondefaultConfig().UserSettings.CodeInspectionSettings.CodeInspections[0].Severity;
93+
94+
var updatedConfig = defaultConfig;
95+
updatedConfig.UserSettings.CodeInspectionSettings.CodeInspections[0].Severity =
96+
GetNondefaultConfig().UserSettings.CodeInspectionSettings.CodeInspections[0].Severity;
97+
98+
Assert.IsTrue(updatedConfig.UserSettings.CodeInspectionSettings.CodeInspections.SequenceEqual(
99+
viewModel.InspectionSettings.SourceCollection.OfType<CodeInspectionSetting>()));
100+
}
101+
}
102+
}

RubberduckTests/Settings/TodoSettingsTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,12 @@ private Configuration GetNondefaultConfig()
4242
public void SaveConfigWorks()
4343
{
4444
var customConfig = GetNondefaultConfig();
45-
var viewModel = new TodoSettingsViewModel(GetNondefaultConfig());
45+
var viewModel = new TodoSettingsViewModel(customConfig);
4646

4747
var config = GetDefaultConfig();
4848
viewModel.UpdateConfig(config);
4949

50-
Assert.IsTrue(customConfig.UserSettings.ToDoListSettings.ToDoMarkers.SequenceEqual(viewModel.TodoSettings));
50+
Assert.IsTrue(config.UserSettings.ToDoListSettings.ToDoMarkers.SequenceEqual(viewModel.TodoSettings));
5151
}
5252

5353
[TestMethod]

RubberduckTests/Settings/UnitTestSettingsTests.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,17 @@ private Configuration GetNondefaultConfig()
4242
public void SaveConfigWorks()
4343
{
4444
var customConfig = GetNondefaultConfig();
45-
var viewModel = new UnitTestSettingsViewModel(GetNondefaultConfig());
45+
var viewModel = new UnitTestSettingsViewModel(customConfig);
4646

4747
var config = GetDefaultConfig();
4848
viewModel.UpdateConfig(config);
4949

5050
MultiAssert.Aggregate(
51-
() => Assert.AreEqual(customConfig.UserSettings.UnitTestSettings.BindingMode, viewModel.BindingMode),
52-
() => Assert.AreEqual(customConfig.UserSettings.UnitTestSettings.AssertMode, viewModel.AssertMode),
53-
() => Assert.AreEqual(customConfig.UserSettings.UnitTestSettings.ModuleInit, viewModel.ModuleInit),
54-
() => Assert.AreEqual(customConfig.UserSettings.UnitTestSettings.MethodInit, viewModel.MethodInit),
55-
() => Assert.AreEqual(customConfig.UserSettings.UnitTestSettings.DefaultTestStubInNewModule, viewModel.DefaultTestStubInNewModule));
51+
() => Assert.AreEqual(config.UserSettings.UnitTestSettings.BindingMode, viewModel.BindingMode),
52+
() => Assert.AreEqual(config.UserSettings.UnitTestSettings.AssertMode, viewModel.AssertMode),
53+
() => Assert.AreEqual(config.UserSettings.UnitTestSettings.ModuleInit, viewModel.ModuleInit),
54+
() => Assert.AreEqual(config.UserSettings.UnitTestSettings.MethodInit, viewModel.MethodInit),
55+
() => Assert.AreEqual(config.UserSettings.UnitTestSettings.DefaultTestStubInNewModule, viewModel.DefaultTestStubInNewModule));
5656
}
5757

5858
[TestMethod]

0 commit comments

Comments
 (0)