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