Skip to content

Commit 45758e7

Browse files
committed
Todo settings tests
1 parent a0e67b4 commit 45758e7

File tree

4 files changed

+132
-3
lines changed

4 files changed

+132
-3
lines changed

RetailCoder.VBE/UI/Settings/TodoSettingsViewModel.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
using System.Linq;
33
using System.Windows.Input;
44
using Rubberduck.Settings;
5-
using Rubberduck.ToDoItems;
65
using Rubberduck.UI.Command;
76

87
namespace Rubberduck.UI.Settings

RubberduckTests/RubberduckTests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@
117117
<Compile Include="Refactoring\RenameTests.cs" />
118118
<Compile Include="Refactoring\ReorderParametersTests.cs" />
119119
<Compile Include="RubberduckParserTests.cs" />
120+
<Compile Include="Settings\TodoSettingsTests.cs" />
120121
<Compile Include="Settings\UnitTestSettingsTests.cs" />
121122
<Compile Include="SourceControlConfig.cs" />
122123
<Compile Include="SourceControl\BranchesPresenterTests.cs" />
Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
using System.Linq;
2+
using Microsoft.VisualStudio.TestTools.UnitTesting;
3+
using Rubberduck.Settings;
4+
using Rubberduck.UI.Settings;
5+
6+
namespace RubberduckTests.Settings
7+
{
8+
[TestClass]
9+
public class TodoSettingsTests
10+
{
11+
private Configuration GetDefaultConfig()
12+
{
13+
var todoSettings = new ToDoListSettings
14+
{
15+
ToDoMarkers = new[]
16+
{
17+
new ToDoMarker("NOTE "),
18+
new ToDoMarker("TODO "),
19+
new ToDoMarker("BUG ")
20+
}
21+
};
22+
23+
var userSettings = new UserSettings(null, todoSettings, null, null, null);
24+
return new Configuration(userSettings);
25+
}
26+
27+
private Configuration GetNondefaultConfig()
28+
{
29+
var todoSettings = new ToDoListSettings
30+
{
31+
ToDoMarkers = new[]
32+
{
33+
new ToDoMarker("PLACEHOLDER ")
34+
}
35+
};
36+
37+
var userSettings = new UserSettings(null, todoSettings, null, null, null);
38+
return new Configuration(userSettings);
39+
}
40+
41+
[TestMethod]
42+
public void SaveConfigWorks()
43+
{
44+
var customConfig = GetNondefaultConfig();
45+
var viewModel = new TodoSettingsViewModel(GetNondefaultConfig());
46+
47+
var config = GetDefaultConfig();
48+
viewModel.UpdateConfig(config);
49+
50+
Assert.IsTrue(customConfig.UserSettings.ToDoListSettings.ToDoMarkers.SequenceEqual(viewModel.TodoSettings));
51+
}
52+
53+
[TestMethod]
54+
public void SetDefaultsWorks()
55+
{
56+
var viewModel = new TodoSettingsViewModel(GetNondefaultConfig());
57+
58+
var defaultConfig = GetDefaultConfig();
59+
viewModel.SetToDefaults(defaultConfig);
60+
61+
Assert.IsTrue(defaultConfig.UserSettings.ToDoListSettings.ToDoMarkers.SequenceEqual(viewModel.TodoSettings));
62+
}
63+
64+
[TestMethod]
65+
public void TodoMarkersAreSetInCtor()
66+
{
67+
var defaultConfig = GetDefaultConfig();
68+
var viewModel = new TodoSettingsViewModel(defaultConfig);
69+
70+
Assert.IsTrue(defaultConfig.UserSettings.ToDoListSettings.ToDoMarkers.SequenceEqual(viewModel.TodoSettings));
71+
}
72+
73+
[TestMethod]
74+
public void AddTodoMarker()
75+
{
76+
var defaultConfig = GetDefaultConfig();
77+
var viewModel = new TodoSettingsViewModel(defaultConfig);
78+
79+
viewModel.AddTodoCommand.Execute(null);
80+
var todoMarkersList = defaultConfig.UserSettings.ToDoListSettings.ToDoMarkers.ToList();
81+
todoMarkersList.Add(new ToDoMarker("PLACEHOLDER "));
82+
83+
Assert.IsTrue(todoMarkersList.SequenceEqual(viewModel.TodoSettings));
84+
}
85+
86+
[TestMethod]
87+
public void DeleteTodoMarker()
88+
{
89+
var defaultConfig = GetDefaultConfig();
90+
var viewModel = new TodoSettingsViewModel(defaultConfig);
91+
92+
viewModel.DeleteTodoCommand.Execute(defaultConfig.UserSettings.ToDoListSettings.ToDoMarkers[0]);
93+
var todoMarkersList = defaultConfig.UserSettings.ToDoListSettings.ToDoMarkers.ToList();
94+
todoMarkersList.Remove(defaultConfig.UserSettings.ToDoListSettings.ToDoMarkers[0]);
95+
96+
Assert.IsTrue(todoMarkersList.SequenceEqual(viewModel.TodoSettings));
97+
}
98+
99+
[TestMethod]
100+
public void AddTodoMarker_ReusesAction()
101+
{
102+
var defaultConfig = GetDefaultConfig();
103+
var viewModel = new TodoSettingsViewModel(defaultConfig);
104+
105+
viewModel.AddTodoCommand.Execute(null);
106+
viewModel.AddTodoCommand.Execute(null);
107+
var todoMarkersList = defaultConfig.UserSettings.ToDoListSettings.ToDoMarkers.ToList();
108+
todoMarkersList.Add(new ToDoMarker("PLACEHOLDER "));
109+
todoMarkersList.Add(new ToDoMarker("PLACEHOLDER "));
110+
111+
Assert.IsTrue(todoMarkersList.SequenceEqual(viewModel.TodoSettings));
112+
}
113+
114+
[TestMethod]
115+
public void DeleteTodoMarker_ReusesAction()
116+
{
117+
var defaultConfig = GetDefaultConfig();
118+
var viewModel = new TodoSettingsViewModel(defaultConfig);
119+
120+
viewModel.DeleteTodoCommand.Execute(defaultConfig.UserSettings.ToDoListSettings.ToDoMarkers[0]);
121+
viewModel.DeleteTodoCommand.Execute(defaultConfig.UserSettings.ToDoListSettings.ToDoMarkers[1]);
122+
var todoMarkersList = defaultConfig.UserSettings.ToDoListSettings.ToDoMarkers.ToList();
123+
todoMarkersList.Remove(defaultConfig.UserSettings.ToDoListSettings.ToDoMarkers[0]);
124+
todoMarkersList.Remove(defaultConfig.UserSettings.ToDoListSettings.ToDoMarkers[1]);
125+
126+
Assert.IsTrue(todoMarkersList.SequenceEqual(viewModel.TodoSettings));
127+
}
128+
}
129+
}

RubberduckTests/Settings/UnitTestSettingsTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public class UnitTestSettingsTests
1010
{
1111
private Configuration GetDefaultConfig()
1212
{
13-
var unitTestSettings = new UnitTestSettings()
13+
var unitTestSettings = new UnitTestSettings
1414
{
1515
BindingMode = BindingMode.LateBinding,
1616
AssertMode = AssertMode.StrictAssert,
@@ -25,7 +25,7 @@ private Configuration GetDefaultConfig()
2525

2626
private Configuration GetNondefaultConfig()
2727
{
28-
var unitTestSettings = new UnitTestSettings()
28+
var unitTestSettings = new UnitTestSettings
2929
{
3030
BindingMode = BindingMode.EarlyBinding,
3131
AssertMode = AssertMode.PermissiveAssert,

0 commit comments

Comments
 (0)