Skip to content

Commit a0e67b4

Browse files
committed
Fix tests.
1 parent 1c67f9d commit a0e67b4

File tree

3 files changed

+72
-22
lines changed

3 files changed

+72
-22
lines changed

RubberduckTests/MultiAssert.cs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using Microsoft.VisualStudio.TestTools.UnitTesting;
5+
6+
namespace RubberduckTests
7+
{
8+
// borrowed from https://blog.elgaard.com/2011/02/06/multiple-asserts-in-a-single-unit-test-method/
9+
public static class MultiAssert
10+
{
11+
public static void Aggregate(params Action[] actions)
12+
{
13+
var exceptions = new List<AssertFailedException>();
14+
15+
foreach (var action in actions)
16+
{
17+
try
18+
{
19+
action();
20+
}
21+
catch (AssertFailedException ex)
22+
{
23+
exceptions.Add(ex);
24+
}
25+
}
26+
27+
var assertionTexts =
28+
exceptions.Select(assertFailedException => assertFailedException.Message).ToList();
29+
if (0 != assertionTexts.Count)
30+
{
31+
throw new
32+
AssertFailedException(
33+
assertionTexts.Aggregate(
34+
(aggregatedMessage, next) => aggregatedMessage + Environment.NewLine + next));
35+
}
36+
}
37+
}
38+
}

RubberduckTests/RubberduckTests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@
107107
<Compile Include="Mocks\MockUserFormBuilder.cs" />
108108
<Compile Include="Mocks\MockVbeBuilder.cs" />
109109
<Compile Include="Mocks\MockWindowsCollection.cs" />
110+
<Compile Include="MultiAssert.cs" />
110111
<Compile Include="Refactoring\EncapsulateFieldTests.cs" />
111112
<Compile Include="Refactoring\ExtractMethodTests.cs" />
112113
<Compile Include="Refactoring\IntroduceFieldTests.cs" />

RubberduckTests/Settings/UnitTestSettingsTests.cs

Lines changed: 33 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -41,68 +41,79 @@ private Configuration GetNondefaultConfig()
4141
[TestMethod]
4242
public void SaveConfigWorks()
4343
{
44+
var customConfig = GetNondefaultConfig();
4445
var viewModel = new UnitTestSettingsViewModel(GetNondefaultConfig());
45-
viewModel.UpdateConfig(GetNondefaultConfig());
4646

47-
Assert.AreEqual(BindingMode.EarlyBinding, viewModel.BindingMode);
48-
Assert.AreEqual(AssertMode.PermissiveAssert, viewModel.AssertMode);
49-
Assert.AreEqual(false, viewModel.ModuleInit);
50-
Assert.AreEqual(false, viewModel.MethodInit);
51-
Assert.AreEqual(true, viewModel.DefaultTestStubInNewModule);
47+
var config = GetDefaultConfig();
48+
viewModel.UpdateConfig(config);
49+
50+
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));
5256
}
5357

5458
[TestMethod]
5559
public void SetDefaultsWorks()
5660
{
5761
var viewModel = new UnitTestSettingsViewModel(GetNondefaultConfig());
5862

59-
viewModel.SetToDefaults(GetDefaultConfig());
63+
var defaultConfig = GetDefaultConfig();
64+
viewModel.SetToDefaults(defaultConfig);
6065

61-
Assert.AreEqual(BindingMode.LateBinding, viewModel.BindingMode);
62-
Assert.AreEqual(AssertMode.StrictAssert, viewModel.AssertMode);
63-
Assert.AreEqual(true, viewModel.ModuleInit);
64-
Assert.AreEqual(true, viewModel.MethodInit);
65-
Assert.AreEqual(false, viewModel.DefaultTestStubInNewModule);
66+
MultiAssert.Aggregate(
67+
() => Assert.AreEqual(defaultConfig.UserSettings.UnitTestSettings.BindingMode, viewModel.BindingMode),
68+
() => Assert.AreEqual(defaultConfig.UserSettings.UnitTestSettings.AssertMode, viewModel.AssertMode),
69+
() => Assert.AreEqual(defaultConfig.UserSettings.UnitTestSettings.ModuleInit, viewModel.ModuleInit),
70+
() => Assert.AreEqual(defaultConfig.UserSettings.UnitTestSettings.MethodInit, viewModel.MethodInit),
71+
() => Assert.AreEqual(defaultConfig.UserSettings.UnitTestSettings.DefaultTestStubInNewModule, viewModel.DefaultTestStubInNewModule));
6672
}
6773

6874
[TestMethod]
6975
public void BindingModeIsSetInCtor()
7076
{
71-
var viewModel = new UnitTestSettingsViewModel(GetDefaultConfig());
77+
var defaultConfig = GetDefaultConfig();
78+
var viewModel = new UnitTestSettingsViewModel(defaultConfig);
7279

73-
Assert.AreEqual(BindingMode.LateBinding, viewModel.BindingMode);
80+
Assert.AreEqual(defaultConfig.UserSettings.UnitTestSettings.BindingMode, viewModel.BindingMode);
7481
}
7582

7683
[TestMethod]
7784
public void AssertModeIsSetInCtor()
7885
{
79-
var viewModel = new UnitTestSettingsViewModel(GetDefaultConfig());
86+
var defaultConfig = GetDefaultConfig();
87+
var viewModel = new UnitTestSettingsViewModel(defaultConfig);
8088

81-
Assert.AreEqual(AssertMode.StrictAssert, viewModel.AssertMode);
89+
Assert.AreEqual(defaultConfig.UserSettings.UnitTestSettings.AssertMode, viewModel.AssertMode);
8290
}
8391

8492
[TestMethod]
8593
public void ModuleInitIsSetInCtor()
8694
{
87-
var viewModel = new UnitTestSettingsViewModel(GetDefaultConfig());
95+
var defaultConfig = GetDefaultConfig();
96+
var viewModel = new UnitTestSettingsViewModel(defaultConfig);
8897

89-
Assert.AreEqual(true, viewModel.ModuleInit);
98+
Assert.AreEqual(defaultConfig.UserSettings.UnitTestSettings.ModuleInit, viewModel.ModuleInit);
9099
}
91100

92101
[TestMethod]
93102
public void MethodInitIsSetInCtor()
94103
{
95-
var viewModel = new UnitTestSettingsViewModel(GetDefaultConfig());
104+
var defaultConfig = GetDefaultConfig();
105+
var viewModel = new UnitTestSettingsViewModel(defaultConfig);
96106

97-
Assert.AreEqual(true, viewModel.MethodInit);
107+
Assert.AreEqual(defaultConfig.UserSettings.UnitTestSettings.MethodInit, viewModel.MethodInit);
98108
}
99109

100110
[TestMethod]
101111
public void DefaultTestStubInNewModuleIsSetInCtor()
102112
{
103-
var viewModel = new UnitTestSettingsViewModel(GetDefaultConfig());
113+
var defaultConfig = GetDefaultConfig();
114+
var viewModel = new UnitTestSettingsViewModel(defaultConfig);
104115

105-
Assert.AreEqual(false, viewModel.DefaultTestStubInNewModule);
116+
Assert.AreEqual(defaultConfig.UserSettings.UnitTestSettings.DefaultTestStubInNewModule, viewModel.DefaultTestStubInNewModule);
106117
}
107118
}
108119
}

0 commit comments

Comments
 (0)