Skip to content

Commit 114eb1a

Browse files
committed
Unit tests for unit test settings view model
1 parent 7123ca8 commit 114eb1a

File tree

3 files changed

+147
-9
lines changed

3 files changed

+147
-9
lines changed

RetailCoder.VBE/UI/Settings/UnitTestSettings.xaml

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,12 @@
2929
</UserControl.Resources>
3030
<Grid>
3131
<StackPanel Margin="5,5,5,0">
32-
<Label DockPanel.Dock="Top" Background="DarkGray" Foreground="White" FontWeight="SemiBold" Content="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=SettingsCaption_UnitTestSettings}" Margin="0,0,0,3">
32+
<Label DockPanel.Dock="Top"
33+
Background="DarkGray"
34+
Foreground="White"
35+
FontWeight="SemiBold"
36+
Content="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=SettingsCaption_UnitTestSettings}"
37+
Margin="0,0,0,3">
3338
<Label.Style>
3439
<Style>
3540
<Style.Resources>
@@ -41,16 +46,36 @@
4146
</Label.Style>
4247
</Label>
4348

44-
<Label Content="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=UnitTestSettings_BindingMode}" FontWeight="SemiBold" />
45-
<ComboBox Margin="5,0,0,5" Width="210" HorizontalAlignment="Left" ItemsSource="{Binding Source={StaticResource BindingMode}, Converter={StaticResource BindingModeToText}, UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding BindingMode, Converter={StaticResource BindingModeValueToText}}" />
49+
<Label Content="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=UnitTestSettings_BindingMode}"
50+
FontWeight="SemiBold" />
51+
<ComboBox Margin="5,0,0,5"
52+
Width="210"
53+
HorizontalAlignment="Left"
54+
ItemsSource="{Binding Source={StaticResource BindingMode}, Converter={StaticResource BindingModeToText}, UpdateSourceTrigger=PropertyChanged}"
55+
SelectedItem="{Binding BindingMode, Converter={StaticResource BindingModeValueToText}}" />
4656

47-
<Label Content="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=UnitTestSettings_AssertMode}" FontWeight="SemiBold" />
48-
<ComboBox Margin="5,0,0,5" Width="210" HorizontalAlignment="Left" ItemsSource="{Binding Source={StaticResource AssertMode}, Converter={StaticResource AssertModeToText}, UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding AssertMode, Converter={StaticResource AssertModeValueToText}}" />
57+
<Label Content="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=UnitTestSettings_AssertMode}"
58+
FontWeight="SemiBold" />
59+
<ComboBox Margin="5,0,0,5"
60+
Width="210"
61+
HorizontalAlignment="Left"
62+
ItemsSource="{Binding Source={StaticResource AssertMode}, Converter={StaticResource AssertModeToText}, UpdateSourceTrigger=PropertyChanged}"
63+
SelectedItem="{Binding AssertMode, Converter={StaticResource AssertModeValueToText}}" />
4964

50-
<Label Content="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=UnitTestSettings_TestModuleTemplateHeader}" FontWeight="SemiBold" />
51-
<CheckBox Content="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=UnitTestSettings_IncludeTestModuleInitCleanupPrompt}" IsChecked="{Binding ModuleInit, Mode=TwoWay}" Margin="5,0,0,5" HorizontalAlignment="Left" />
52-
<CheckBox Content="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=UnitTestSettings_IncludeTestMethodInitCleanupPrompt}" IsChecked="{Binding MethodInit, Mode=TwoWay}" Margin="5,0,0,5" HorizontalAlignment="Left" />
53-
<CheckBox Content="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=UnitTestSettings_IncludeTestMethodStubWhenCreatingModulePrompt}" IsChecked="{Binding DefaultTestStubInNewModule, Mode=TwoWay}" Margin="5,0,0,0" HorizontalAlignment="Left" />
65+
<Label Content="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=UnitTestSettings_TestModuleTemplateHeader}"
66+
FontWeight="SemiBold" />
67+
<CheckBox Content="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=UnitTestSettings_IncludeTestModuleInitCleanupPrompt}"
68+
IsChecked="{Binding ModuleInit, Mode=TwoWay}"
69+
Margin="5,0,0,5"
70+
HorizontalAlignment="Left" />
71+
<CheckBox Content="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=UnitTestSettings_IncludeTestMethodInitCleanupPrompt}"
72+
IsChecked="{Binding MethodInit, Mode=TwoWay}"
73+
Margin="5,0,0,5"
74+
HorizontalAlignment="Left" />
75+
<CheckBox Content="{Resx ResxName=Rubberduck.UI.RubberduckUI, Key=UnitTestSettings_IncludeTestMethodStubWhenCreatingModulePrompt}"
76+
IsChecked="{Binding DefaultTestStubInNewModule, Mode=TwoWay}"
77+
Margin="5,0,0,0"
78+
HorizontalAlignment="Left" />
5479
</StackPanel>
5580
</Grid>
5681
</UserControl>

RubberduckTests/RubberduckTests.csproj

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@
116116
<Compile Include="Refactoring\RenameTests.cs" />
117117
<Compile Include="Refactoring\ReorderParametersTests.cs" />
118118
<Compile Include="RubberduckParserTests.cs" />
119+
<Compile Include="Settings\UnitTestSettingsTests.cs" />
119120
<Compile Include="SourceControlConfig.cs" />
120121
<Compile Include="SourceControl\BranchesPresenterTests.cs" />
121122
<Compile Include="SourceControl\ChangesPresenterTests.cs" />
@@ -142,6 +143,10 @@
142143
<Project>{a4a618e1-cbca-435f-9c6c-5181e030adfc}</Project>
143144
<Name>Rubberduck.Parsing</Name>
144145
</ProjectReference>
146+
<ProjectReference Include="..\Rubberduck.SmartIndenter\Rubberduck.SmartIndenter.csproj">
147+
<Project>{b9c0bf22-4d8a-4bf4-89f9-e789c0063deb}</Project>
148+
<Name>Rubberduck.SmartIndenter</Name>
149+
</ProjectReference>
145150
<ProjectReference Include="..\Rubberduck.SourceControl\Rubberduck.SourceControl.csproj">
146151
<Project>{0040e129-1aa2-459f-a59a-129fa4035e01}</Project>
147152
<Name>Rubberduck.SourceControl</Name>
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
using Microsoft.VisualStudio.TestTools.UnitTesting;
2+
using Rubberduck.Settings;
3+
using Rubberduck.UI.Settings;
4+
using UnitTestSettings = Rubberduck.Settings.UnitTestSettings;
5+
6+
namespace RubberduckTests.Settings
7+
{
8+
[TestClass]
9+
public class UnitTestSettingsTests
10+
{
11+
private Configuration GetDefaultConfig()
12+
{
13+
var unitTestSettings = new UnitTestSettings()
14+
{
15+
BindingMode = BindingMode.LateBinding,
16+
AssertMode = AssertMode.StrictAssert,
17+
ModuleInit = true,
18+
MethodInit = true,
19+
DefaultTestStubInNewModule = false
20+
};
21+
22+
var userSettings = new UserSettings(null, null, null, unitTestSettings, null);
23+
return new Configuration(userSettings);
24+
}
25+
26+
private Configuration GetNondefaultConfig()
27+
{
28+
var unitTestSettings = new UnitTestSettings()
29+
{
30+
BindingMode = BindingMode.EarlyBinding,
31+
AssertMode = AssertMode.PermissiveAssert,
32+
ModuleInit = false,
33+
MethodInit = false,
34+
DefaultTestStubInNewModule = true
35+
};
36+
37+
var userSettings = new UserSettings(null, null, null, unitTestSettings, null);
38+
return new Configuration(userSettings);
39+
}
40+
41+
[TestMethod]
42+
public void SaveConfigWorks()
43+
{
44+
var viewModel = new UnitTestSettingsViewModel(GetNondefaultConfig());
45+
viewModel.UpdateConfig(GetNondefaultConfig());
46+
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);
52+
}
53+
54+
[TestMethod]
55+
public void SetDefaultsWorks()
56+
{
57+
var viewModel = new UnitTestSettingsViewModel(GetNondefaultConfig());
58+
59+
viewModel.SetToDefaults(GetDefaultConfig());
60+
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+
}
67+
68+
[TestMethod]
69+
public void BindingModeIsSetInCtor()
70+
{
71+
var viewModel = new UnitTestSettingsViewModel(GetDefaultConfig());
72+
73+
Assert.AreEqual(BindingMode.LateBinding, viewModel.BindingMode);
74+
}
75+
76+
[TestMethod]
77+
public void AssertModeIsSetInCtor()
78+
{
79+
var viewModel = new UnitTestSettingsViewModel(GetDefaultConfig());
80+
81+
Assert.AreEqual(AssertMode.StrictAssert, viewModel.AssertMode);
82+
}
83+
84+
[TestMethod]
85+
public void ModuleInitIsSetInCtor()
86+
{
87+
var viewModel = new UnitTestSettingsViewModel(GetDefaultConfig());
88+
89+
Assert.AreEqual(true, viewModel.ModuleInit);
90+
}
91+
92+
[TestMethod]
93+
public void MethodInitIsSetInCtor()
94+
{
95+
var viewModel = new UnitTestSettingsViewModel(GetDefaultConfig());
96+
97+
Assert.AreEqual(true, viewModel.MethodInit);
98+
}
99+
100+
[TestMethod]
101+
public void DefaultTestStubInNewModuleIsSetInCtor()
102+
{
103+
var viewModel = new UnitTestSettingsViewModel(GetDefaultConfig());
104+
105+
Assert.AreEqual(false, viewModel.DefaultTestStubInNewModule);
106+
}
107+
}
108+
}

0 commit comments

Comments
 (0)