Skip to content

Commit 4a78c01

Browse files
committed
Indenter settings tests
1 parent 37fb1aa commit 4a78c01

File tree

2 files changed

+262
-0
lines changed

2 files changed

+262
-0
lines changed

RubberduckTests/RubberduckTests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@
121121
<Compile Include="RubberduckParserTests.cs" />
122122
<Compile Include="Settings\CodeInspectionSettingsTests.cs" />
123123
<Compile Include="Settings\GeneralSettingsTests.cs" />
124+
<Compile Include="Settings\IndenterSettingsTests.cs" />
124125
<Compile Include="Settings\TodoSettingsTests.cs" />
125126
<Compile Include="Settings\UnitTestSettingsTests.cs" />
126127
<Compile Include="SourceControlConfig.cs" />
Lines changed: 261 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,261 @@
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

Comments
 (0)