1
+ using Microsoft . VisualStudio . TestTools . UnitTesting ;
2
+ using Rubberduck . Settings ;
3
+ using Rubberduck . UI . Settings ;
4
+
5
+ namespace RubberduckTests . Settings
6
+ {
7
+ [ TestClass ]
8
+ public class IndenterSettingsTests
9
+ {
10
+ private Configuration GetDefaultConfig ( )
11
+ {
12
+ var indenterSettings = new Rubberduck . Settings . IndenterSettings
13
+ {
14
+ IndentEntireProcedureBody = true ,
15
+ IndentFirstCommentBlock = true ,
16
+ IndentFirstDeclarationBlock = true ,
17
+ AlignCommentsWithCode = true ,
18
+ AlignContinuations = true ,
19
+ IgnoreOperatorsInContinuations = true ,
20
+ IndentCase = false ,
21
+ ForceDebugStatementsInColumn1 = false ,
22
+ ForceCompilerDirectivesInColumn1 = false ,
23
+ IndentCompilerDirectives = true ,
24
+ AlignDims = false ,
25
+ AlignDimColumn = 15 ,
26
+ EnableUndo = true ,
27
+ EndOfLineCommentStyle = Rubberduck . SmartIndenter . EndOfLineCommentStyle . AlignInColumn ,
28
+ EndOfLineCommentColumnSpaceAlignment = 50 ,
29
+ IndentSpaces = 4
30
+ } ;
31
+
32
+ var userSettings = new UserSettings ( null , null , null , null , indenterSettings ) ;
33
+ return new Configuration ( userSettings ) ;
34
+ }
35
+
36
+ private Configuration GetNondefaultConfig ( )
37
+ {
38
+ var indenterSettings = new Rubberduck . Settings . IndenterSettings
39
+ {
40
+ IndentEntireProcedureBody = false ,
41
+ IndentFirstCommentBlock = false ,
42
+ IndentFirstDeclarationBlock = false ,
43
+ AlignCommentsWithCode = false ,
44
+ AlignContinuations = false ,
45
+ IgnoreOperatorsInContinuations = false ,
46
+ IndentCase = true ,
47
+ ForceDebugStatementsInColumn1 = true ,
48
+ ForceCompilerDirectivesInColumn1 = true ,
49
+ IndentCompilerDirectives = false ,
50
+ AlignDims = true ,
51
+ AlignDimColumn = 16 ,
52
+ EnableUndo = false ,
53
+ EndOfLineCommentStyle = Rubberduck . SmartIndenter . EndOfLineCommentStyle . Absolute ,
54
+ EndOfLineCommentColumnSpaceAlignment = 60 ,
55
+ IndentSpaces = 2
56
+ } ;
57
+
58
+ var userSettings = new UserSettings ( null , null , null , null , indenterSettings ) ;
59
+ return new Configuration ( userSettings ) ;
60
+ }
61
+
62
+ [ TestMethod ]
63
+ public void SaveConfigWorks ( )
64
+ {
65
+ var customConfig = GetNondefaultConfig ( ) ;
66
+ var viewModel = new IndenterSettingsViewModel ( customConfig ) ;
67
+
68
+ var config = GetDefaultConfig ( ) ;
69
+ viewModel . UpdateConfig ( config ) ;
70
+
71
+ MultiAssert . Aggregate (
72
+ ( ) => Assert . AreEqual ( config . UserSettings . IndenterSettings . AlignCommentsWithCode , viewModel . AlignCommentsWithCode ) ,
73
+ ( ) => Assert . AreEqual ( config . UserSettings . IndenterSettings . AlignContinuations , viewModel . AlignContinuations ) ,
74
+ ( ) => Assert . AreEqual ( config . UserSettings . IndenterSettings . AlignDimColumn , viewModel . AlignDimColumn ) ,
75
+ ( ) => Assert . AreEqual ( config . UserSettings . IndenterSettings . AlignDims , viewModel . AlignDims ) ,
76
+ ( ) => Assert . AreEqual ( config . UserSettings . IndenterSettings . EnableUndo , viewModel . EnableUndo ) ,
77
+ ( ) => Assert . AreEqual ( config . UserSettings . IndenterSettings . EndOfLineCommentColumnSpaceAlignment , viewModel . EndOfLineCommentColumnSpaceAlignment ) ,
78
+ ( ) => Assert . AreEqual ( config . UserSettings . IndenterSettings . EndOfLineCommentStyle , viewModel . EndOfLineCommentStyle ) ,
79
+ ( ) => Assert . AreEqual ( config . UserSettings . IndenterSettings . ForceCompilerDirectivesInColumn1 , viewModel . ForceCompilerDirectivesInColumn1 ) ,
80
+ ( ) => Assert . AreEqual ( config . UserSettings . IndenterSettings . ForceDebugStatementsInColumn1 , viewModel . ForceDebugStatementsInColumn1 ) ,
81
+ ( ) => Assert . AreEqual ( config . UserSettings . IndenterSettings . IgnoreOperatorsInContinuations , viewModel . IgnoreOperatorsInContinuations ) ,
82
+ ( ) => Assert . AreEqual ( config . UserSettings . IndenterSettings . IndentCase , viewModel . IndentCase ) ,
83
+ ( ) => Assert . AreEqual ( config . UserSettings . IndenterSettings . IndentCompilerDirectives , viewModel . IndentCompilerDirectives ) ,
84
+ ( ) => Assert . AreEqual ( config . UserSettings . IndenterSettings . IndentEntireProcedureBody , viewModel . IndentEntireProcedureBody ) ,
85
+ ( ) => Assert . AreEqual ( config . UserSettings . IndenterSettings . IndentFirstCommentBlock , viewModel . IndentFirstCommentBlock ) ,
86
+ ( ) => Assert . AreEqual ( config . UserSettings . IndenterSettings . IndentFirstDeclarationBlock , viewModel . IndentFirstDeclarationBlock ) ,
87
+ ( ) => Assert . AreEqual ( config . UserSettings . IndenterSettings . IndentSpaces , viewModel . IndentSpaces ) ) ;
88
+ }
89
+
90
+ [ TestMethod ]
91
+ public void SetDefaultsWorks ( )
92
+ {
93
+ var viewModel = new IndenterSettingsViewModel ( GetNondefaultConfig ( ) ) ;
94
+
95
+ var defaultConfig = GetDefaultConfig ( ) ;
96
+ viewModel . SetToDefaults ( defaultConfig ) ;
97
+
98
+ MultiAssert . Aggregate (
99
+ ( ) => Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . AlignCommentsWithCode , viewModel . AlignCommentsWithCode ) ,
100
+ ( ) => Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . AlignContinuations , viewModel . AlignContinuations ) ,
101
+ ( ) => Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . AlignDimColumn , viewModel . AlignDimColumn ) ,
102
+ ( ) => Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . AlignDims , viewModel . AlignDims ) ,
103
+ ( ) => Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . EnableUndo , viewModel . EnableUndo ) ,
104
+ ( ) => Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . EndOfLineCommentColumnSpaceAlignment , viewModel . EndOfLineCommentColumnSpaceAlignment ) ,
105
+ ( ) => Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . EndOfLineCommentStyle , viewModel . EndOfLineCommentStyle ) ,
106
+ ( ) => Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . ForceCompilerDirectivesInColumn1 , viewModel . ForceCompilerDirectivesInColumn1 ) ,
107
+ ( ) => Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . ForceDebugStatementsInColumn1 , viewModel . ForceDebugStatementsInColumn1 ) ,
108
+ ( ) => Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . IgnoreOperatorsInContinuations , viewModel . IgnoreOperatorsInContinuations ) ,
109
+ ( ) => Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . IndentCase , viewModel . IndentCase ) ,
110
+ ( ) => Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . IndentCompilerDirectives , viewModel . IndentCompilerDirectives ) ,
111
+ ( ) => Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . IndentEntireProcedureBody , viewModel . IndentEntireProcedureBody ) ,
112
+ ( ) => Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . IndentFirstCommentBlock , viewModel . IndentFirstCommentBlock ) ,
113
+ ( ) => Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . IndentFirstDeclarationBlock , viewModel . IndentFirstDeclarationBlock ) ,
114
+ ( ) => Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . IndentSpaces , viewModel . IndentSpaces ) ) ;
115
+ }
116
+
117
+ [ TestMethod ]
118
+ public void AlignCommentsWithCodeIsSetInCtor ( )
119
+ {
120
+ var defaultConfig = GetDefaultConfig ( ) ;
121
+ var viewModel = new IndenterSettingsViewModel ( defaultConfig ) ;
122
+
123
+ Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . AlignCommentsWithCode , viewModel . AlignCommentsWithCode ) ;
124
+ }
125
+
126
+ [ TestMethod ]
127
+ public void AlignContinuationsIsSetInCtor ( )
128
+ {
129
+ var defaultConfig = GetDefaultConfig ( ) ;
130
+ var viewModel = new IndenterSettingsViewModel ( defaultConfig ) ;
131
+
132
+ Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . AlignContinuations , viewModel . AlignContinuations ) ;
133
+ }
134
+
135
+ [ TestMethod ]
136
+ public void AlignDimColumnIsSetInCtor ( )
137
+ {
138
+ var defaultConfig = GetDefaultConfig ( ) ;
139
+ var viewModel = new IndenterSettingsViewModel ( defaultConfig ) ;
140
+
141
+ Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . AlignDimColumn , viewModel . AlignDimColumn ) ;
142
+ }
143
+
144
+ [ TestMethod ]
145
+ public void AlignDimsIsSetInCtor ( )
146
+ {
147
+ var defaultConfig = GetDefaultConfig ( ) ;
148
+ var viewModel = new IndenterSettingsViewModel ( defaultConfig ) ;
149
+
150
+ Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . AlignDims , viewModel . AlignDims ) ;
151
+ }
152
+
153
+ [ TestMethod ]
154
+ public void EnableUndoIsSetInCtor ( )
155
+ {
156
+ var defaultConfig = GetDefaultConfig ( ) ;
157
+ var viewModel = new IndenterSettingsViewModel ( defaultConfig ) ;
158
+
159
+ Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . EnableUndo , viewModel . EnableUndo ) ;
160
+ }
161
+
162
+ [ TestMethod ]
163
+ public void EndOfLineCommentColumnSpaceAlignmentIsSetInCtor ( )
164
+ {
165
+ var defaultConfig = GetDefaultConfig ( ) ;
166
+ var viewModel = new IndenterSettingsViewModel ( defaultConfig ) ;
167
+
168
+ Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . EndOfLineCommentColumnSpaceAlignment , viewModel . EndOfLineCommentColumnSpaceAlignment ) ;
169
+ }
170
+
171
+ [ TestMethod ]
172
+ public void EndOfLineCommentStyleIsSetInCtor ( )
173
+ {
174
+ var defaultConfig = GetDefaultConfig ( ) ;
175
+ var viewModel = new IndenterSettingsViewModel ( defaultConfig ) ;
176
+
177
+ Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . EndOfLineCommentStyle , viewModel . EndOfLineCommentStyle ) ;
178
+ }
179
+
180
+ [ TestMethod ]
181
+ public void ForceCompilerDirectivesInColumn1IsSetInCtor ( )
182
+ {
183
+ var defaultConfig = GetDefaultConfig ( ) ;
184
+ var viewModel = new IndenterSettingsViewModel ( defaultConfig ) ;
185
+
186
+ Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . ForceCompilerDirectivesInColumn1 , viewModel . ForceCompilerDirectivesInColumn1 ) ;
187
+ }
188
+
189
+ [ TestMethod ]
190
+ public void ForceDebugStatementsInColumn1IsSetInCtor ( )
191
+ {
192
+ var defaultConfig = GetDefaultConfig ( ) ;
193
+ var viewModel = new IndenterSettingsViewModel ( defaultConfig ) ;
194
+
195
+ Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . ForceDebugStatementsInColumn1 , viewModel . ForceDebugStatementsInColumn1 ) ;
196
+ }
197
+
198
+ [ TestMethod ]
199
+ public void IgnoreOperatorsInContinuationsIsSetInCtor ( )
200
+ {
201
+ var defaultConfig = GetDefaultConfig ( ) ;
202
+ var viewModel = new IndenterSettingsViewModel ( defaultConfig ) ;
203
+
204
+ Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . IgnoreOperatorsInContinuations , viewModel . IgnoreOperatorsInContinuations ) ;
205
+ }
206
+
207
+ [ TestMethod ]
208
+ public void IndentCaseIsSetInCtor ( )
209
+ {
210
+ var defaultConfig = GetDefaultConfig ( ) ;
211
+ var viewModel = new IndenterSettingsViewModel ( defaultConfig ) ;
212
+
213
+ Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . IndentCase , viewModel . IndentCase ) ;
214
+ }
215
+
216
+ [ TestMethod ]
217
+ public void IndentCompilerDirectivesIsSetInCtor ( )
218
+ {
219
+ var defaultConfig = GetDefaultConfig ( ) ;
220
+ var viewModel = new IndenterSettingsViewModel ( defaultConfig ) ;
221
+
222
+ Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . IndentCompilerDirectives , viewModel . IndentCompilerDirectives ) ;
223
+ }
224
+
225
+ [ TestMethod ]
226
+ public void IndentEntireProcedureBodyIsSetInCtor ( )
227
+ {
228
+ var defaultConfig = GetDefaultConfig ( ) ;
229
+ var viewModel = new IndenterSettingsViewModel ( defaultConfig ) ;
230
+
231
+ Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . IndentEntireProcedureBody , viewModel . IndentEntireProcedureBody ) ;
232
+ }
233
+
234
+ [ TestMethod ]
235
+ public void IndentFirstCommentBlockIsSetInCtor ( )
236
+ {
237
+ var defaultConfig = GetDefaultConfig ( ) ;
238
+ var viewModel = new IndenterSettingsViewModel ( defaultConfig ) ;
239
+
240
+ Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . IndentFirstCommentBlock , viewModel . IndentFirstCommentBlock ) ;
241
+ }
242
+
243
+ [ TestMethod ]
244
+ public void IndentFirstDeclarationBlockIsSetInCtor ( )
245
+ {
246
+ var defaultConfig = GetDefaultConfig ( ) ;
247
+ var viewModel = new IndenterSettingsViewModel ( defaultConfig ) ;
248
+
249
+ Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . IndentFirstDeclarationBlock , viewModel . IndentFirstDeclarationBlock ) ;
250
+ }
251
+
252
+ [ TestMethod ]
253
+ public void IndentSpacesIsSetInCtor ( )
254
+ {
255
+ var defaultConfig = GetDefaultConfig ( ) ;
256
+ var viewModel = new IndenterSettingsViewModel ( defaultConfig ) ;
257
+
258
+ Assert . AreEqual ( defaultConfig . UserSettings . IndenterSettings . IndentSpaces , viewModel . IndentSpaces ) ;
259
+ }
260
+ }
261
+ }
0 commit comments