Skip to content

Commit 37fb1aa

Browse files
committed
General settings tests
1 parent 9018089 commit 37fb1aa

File tree

5 files changed

+94
-8
lines changed

5 files changed

+94
-8
lines changed

RetailCoder.VBE/Settings/ConfigurationLoader.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,8 @@ private GeneralSettings GetDefaultGeneralSettings()
137137
return new GeneralSettings(new DisplayLanguageSetting("en-US"),
138138
new[]
139139
{
140-
new Hotkey{Name="IndentModule", IsEnabled=true, KeyDisplaySymbol="CTRL-M",},
141-
new Hotkey{Name="IndentProcedure", IsEnabled=true, KeyDisplaySymbol="CTRL-P"}
140+
new Hotkey{Name="IndentProcedure", IsEnabled=true, KeyDisplaySymbol="CTRL-P"},
141+
new Hotkey{Name="IndentModule", IsEnabled=true, KeyDisplaySymbol="CTRL-M"}
142142
});
143143
}
144144

RetailCoder.VBE/UI/Settings/GeneralSettingsViewModel.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
using System.Collections.Generic;
2-
using System.Collections.ObjectModel;
1+
using System.Collections.ObjectModel;
32
using System.Linq;
4-
using Rubberduck.Common;
53
using Rubberduck.Settings;
64

75
namespace Rubberduck.UI.Settings

RetailCoder.VBE/UI/Settings/IndenterSettingsViewModel.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
using System.Windows.Input;
2-
using Rubberduck.Settings;
1+
using Rubberduck.Settings;
32
using Rubberduck.SmartIndenter;
4-
using Rubberduck.UI.Command;
53

64
namespace Rubberduck.UI.Settings
75
{

RubberduckTests/RubberduckTests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@
120120
<Compile Include="Refactoring\ReorderParametersTests.cs" />
121121
<Compile Include="RubberduckParserTests.cs" />
122122
<Compile Include="Settings\CodeInspectionSettingsTests.cs" />
123+
<Compile Include="Settings\GeneralSettingsTests.cs" />
123124
<Compile Include="Settings\TodoSettingsTests.cs" />
124125
<Compile Include="Settings\UnitTestSettingsTests.cs" />
125126
<Compile Include="SourceControlConfig.cs" />
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
using System.Linq;
2+
using Microsoft.VisualStudio.TestTools.UnitTesting;
3+
using Rubberduck.Settings;
4+
using Rubberduck.UI.Settings;
5+
using GeneralSettings = Rubberduck.Settings.GeneralSettings;
6+
7+
namespace RubberduckTests.Settings
8+
{
9+
[TestClass]
10+
public class GeneralSettingsTests
11+
{
12+
private Configuration GetDefaultConfig()
13+
{
14+
var generalSettings = new GeneralSettings
15+
{
16+
Language = new DisplayLanguageSetting("en-US"),
17+
HotkeySettings = new[]
18+
{
19+
new Hotkey{Name="IndentProcedure", IsEnabled=true, KeyDisplaySymbol="CTRL-P"},
20+
new Hotkey{Name="IndentModule", IsEnabled=true, KeyDisplaySymbol="CTRL-M"}
21+
}
22+
};
23+
24+
var userSettings = new UserSettings(generalSettings, null, null, null, null);
25+
return new Configuration(userSettings);
26+
}
27+
28+
private Configuration GetNondefaultConfig()
29+
{
30+
var generalSettings = new GeneralSettings
31+
{
32+
Language = new DisplayLanguageSetting("sv-SE"),
33+
HotkeySettings = new[]
34+
{
35+
new Hotkey{Name="IndentProcedure", IsEnabled=false, KeyDisplaySymbol="CTRL-C"},
36+
new Hotkey{Name="IndentModule", IsEnabled=false, KeyDisplaySymbol="CTRL-X"}
37+
}
38+
};
39+
40+
var userSettings = new UserSettings(generalSettings, null, null, null, null);
41+
return new Configuration(userSettings);
42+
}
43+
44+
[TestMethod]
45+
public void SaveConfigWorks()
46+
{
47+
var customConfig = GetNondefaultConfig();
48+
var viewModel = new GeneralSettingsViewModel(customConfig);
49+
50+
var config = GetDefaultConfig();
51+
viewModel.UpdateConfig(config);
52+
53+
MultiAssert.Aggregate(
54+
() => Assert.AreEqual(config.UserSettings.GeneralSettings.Language, viewModel.SelectedLanguage),
55+
() => Assert.IsTrue(config.UserSettings.GeneralSettings.HotkeySettings.SequenceEqual(viewModel.Hotkeys)));
56+
}
57+
58+
[TestMethod]
59+
public void SetDefaultsWorks()
60+
{
61+
var viewModel = new GeneralSettingsViewModel(GetNondefaultConfig());
62+
63+
var defaultConfig = GetDefaultConfig();
64+
viewModel.SetToDefaults(defaultConfig);
65+
66+
MultiAssert.Aggregate(
67+
() => Assert.AreEqual(defaultConfig.UserSettings.GeneralSettings.Language, viewModel.SelectedLanguage),
68+
() => Assert.IsTrue(defaultConfig.UserSettings.GeneralSettings.HotkeySettings.SequenceEqual(viewModel.Hotkeys)));
69+
}
70+
71+
[TestMethod]
72+
public void LanguageIsSetInCtor()
73+
{
74+
var defaultConfig = GetDefaultConfig();
75+
var viewModel = new GeneralSettingsViewModel(defaultConfig);
76+
77+
Assert.AreEqual(defaultConfig.UserSettings.GeneralSettings.Language, viewModel.SelectedLanguage);
78+
}
79+
80+
[TestMethod]
81+
public void HotkeysAreSetInCtor()
82+
{
83+
var defaultConfig = GetDefaultConfig();
84+
var viewModel = new GeneralSettingsViewModel(defaultConfig);
85+
86+
Assert.IsTrue(defaultConfig.UserSettings.GeneralSettings.HotkeySettings.SequenceEqual(viewModel.Hotkeys));
87+
}
88+
}
89+
}

0 commit comments

Comments
 (0)