Skip to content

Commit b7272bf

Browse files
authored
Merge pull request #1417 from TestCentric/issue-1413-2
Settings dialog: add configuration of default tree settings
2 parents f2c4881 + 35ae6e3 commit b7272bf

33 files changed

+383
-279
lines changed

src/GuiRunner/TestCentric.Gui.Tests/Presenters/Main/CommandTests.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -338,35 +338,35 @@ public void RunFailedButton_RunsFailedTests()
338338
}
339339

340340
[Test]
341-
public void DisplayFormatChange_ChangesModelSetting()
341+
public void DisplayFormatChange_Changes_TreeConfiguration()
342342
{
343343
_view.DisplayFormat.SelectedItem.Returns("TEST_LIST");
344344
_view.DisplayFormat.SelectionChanged += Raise.Event<CommandHandler>();
345345

346346
// Assert
347-
_settings.Gui.TestTree.Received().DisplayFormat = "TEST_LIST";
347+
Assert.That(_model.TreeConfiguration.DisplayFormat, Is.EqualTo("TEST_LIST"));
348348
}
349349

350350
[Test]
351-
public void TestListGroupByChange_ChangesModelSetting()
351+
public void TestListGroupByChange_Changes_TreeConfiguration()
352352
{
353353
_view.DisplayFormat.SelectedItem.Returns("TEST_LIST");
354354
_view.TestListGroupBy.SelectedItem.Returns("OUTCOME");
355355
_view.TestListGroupBy.SelectionChanged += Raise.Event<CommandHandler>();
356356

357357
// Assert
358-
_settings.Gui.TestTree.TestList.Received().GroupBy = "OUTCOME";
358+
Assert.That(_model.TreeConfiguration.TestListGroupBy, Is.EqualTo("OUTCOME"));
359359
}
360360

361361
[Test]
362-
public void NUnitTreeGroupByChange_ChangesModelSetting()
362+
public void NUnitTreeGroupByChange_Changes_TreeConfiguration()
363363
{
364364
_view.DisplayFormat.SelectedItem.Returns("NUNIT_TREE");
365365
_view.NUnitGroupBy.SelectedItem.Returns("CATEGORY");
366366
_view.NUnitGroupBy.SelectionChanged += Raise.Event<CommandHandler>();
367367

368368
// Assert
369-
_settings.Gui.TestTree.Received().NUnitGroupBy = "CATEGORY";
369+
Assert.That(_model.TreeConfiguration.NUnitGroupBy, Is.EqualTo("CATEGORY"));
370370
}
371371

372372
[Test]
@@ -426,7 +426,7 @@ public void SelectedTestsChanged_TestSelected_CommandIsEnabled()
426426

427427
[TestCase(true)]
428428
[TestCase(false)]
429-
public void ShowNamespaceChanged_ChangesModelSetting(bool showNamespace)
429+
public void ShowNamespaceChanged_Changes_TreeConfiguration(bool showNamespace)
430430
{
431431
// Arrange
432432
_view.ShowNamespace.Checked .Returns(showNamespace);
@@ -435,7 +435,7 @@ public void ShowNamespaceChanged_ChangesModelSetting(bool showNamespace)
435435
_view.ShowNamespace.CheckedChanged += Raise.Event<CommandHandler>();
436436

437437
// Assert
438-
Assert.That(_model.Settings.Gui.TestTree.ShowNamespace, Is.EqualTo(showNamespace));
438+
Assert.That(_model.TreeConfiguration.ShowNamespaces, Is.EqualTo(showNamespace));
439439
}
440440

441441
[TestCase(true)]

src/GuiRunner/TestCentric.Gui.Tests/Presenters/Main/WhenPresenterIsCreated.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,10 @@ public void CheckCommandVisible(string propName, bool visible)
4242

4343
[TestCase("NUNIT_TREE")]
4444
[TestCase("TEST_LIST")]
45-
public void CheckMenu_DisplayFormat_SelectedItem_IsInitialzedFromSettings(string displayFormat)
45+
public void CheckMenu_DisplayFormat_SelectedItem_IsInitializedFromTreeConfiguration(string displayFormat)
4646
{
4747
// 1. Arrange
48-
_settings.Gui.TestTree.DisplayFormat = displayFormat;
48+
_model.TreeConfiguration.DisplayFormat = displayFormat;
4949

5050
// 2. Act
5151
_presenter = new TestCentricPresenter(_view, _model, new GuiOptions());
@@ -58,11 +58,11 @@ public void CheckMenu_DisplayFormat_SelectedItem_IsInitialzedFromSettings(string
5858
[TestCase("CATEGORY")]
5959
[TestCase("OUTCOME")]
6060
[TestCase("DURATION")]
61-
public void CheckMenu_NUnitTreeGroupBy_SelectedItem_IsInitializedFromSettings(string groupBy)
61+
public void CheckMenu_NUnitTreeGroupBy_SelectedItem_IsInitializedFromTreeConfiguration(string groupBy)
6262
{
6363
// 1. Arrange
64-
_settings.Gui.TestTree.DisplayFormat = "NUNIT_TREE";
65-
_settings.Gui.TestTree.NUnitGroupBy = groupBy;
64+
_model.TreeConfiguration.DisplayFormat = "NUNIT_TREE";
65+
_model.TreeConfiguration.NUnitGroupBy = groupBy;
6666

6767
// 2. Act
6868
_presenter = new TestCentricPresenter(_view, _model, new GuiOptions());
@@ -74,11 +74,11 @@ public void CheckMenu_NUnitTreeGroupBy_SelectedItem_IsInitializedFromSettings(st
7474
[TestCase("ASSEMBLY")]
7575
[TestCase("CATEGORY")]
7676
[TestCase("OUTCOME")]
77-
public void CheckMenu_TestListGroupBy_SelectedItem_TestList_IsInitialzedFromSettings(string groupBy)
77+
public void CheckMenu_TestListGroupBy_SelectedItem_TestList_IsInitializedFromTreeConfiguration(string groupBy)
7878
{
7979
// 1. Arrange
80-
_settings.Gui.TestTree.DisplayFormat = "TEST_LIST";
81-
_settings.Gui.TestTree.TestList.GroupBy = groupBy;
80+
_model.TreeConfiguration.DisplayFormat = "TEST_LIST";
81+
_model.TreeConfiguration.TestListGroupBy = groupBy;
8282

8383
// 2. Act
8484
_presenter = new TestCentricPresenter(_view, _model, new GuiOptions());

src/GuiRunner/TestCentric.Gui.Tests/Presenters/Main/WhenSettingsChanged.cs

Lines changed: 35 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,71 +9,84 @@
99

1010
namespace TestCentric.Gui.Presenters.Main
1111
{
12+
using System.Runtime.InteropServices;
13+
using TestCentric.Gui.Model;
1214
using TestCentric.Gui.Model.Settings;
1315

1416
internal class WhenSettingsChanged : MainPresenterTestBase
1517
{
1618
[TestCase("NUNIT_TREE")]
1719
[TestCase("TEST_LIST")]
18-
public void DisplayFormat_SettingChanged_MenuItemIsUpdated(string displayFormat)
20+
public void DisplayFormat_TreeConfigurationChanged_MenuItemIsUpdated(string displayFormat)
1921
{
20-
// 1. Act
21-
_settings.Gui.TestTree.DisplayFormat.Returns(displayFormat);
22-
_settings.Changed += Raise.Event<SettingsEventHandler>(this, new SettingsEventArgs("TestCentric.Gui.TestTree.DisplayFormat"));
22+
// 1. Arrange
23+
_model.TreeConfiguration.DisplayFormat.Returns(displayFormat);
2324

24-
// 2. Assert
25+
// 2. Act
26+
_model.TreeConfiguration.Changed += Raise.Event<SettingsEventHandler>(null, new SettingsEventArgs(nameof(TreeConfiguration.DisplayFormat)));
27+
28+
// 3. Assert
2529
Assert.That(_view.DisplayFormat.SelectedItem, Is.EqualTo(displayFormat));
2630
}
2731

2832
[TestCase("UNGROUPED")]
2933
[TestCase("CATEGORY")]
3034
[TestCase("OUTCOME")]
3135
[TestCase("DURATION")]
32-
public void NUnitTreeGroupBy_SettingChanged_MenuItemIsUpdated(string groupBy)
36+
public void NUnitTreeGroupBy_TreeConfigurationChanged_MenuItemIsUpdated(string groupBy)
3337
{
34-
// 1. Act
35-
_settings.Gui.TestTree.NUnitGroupBy.Returns(groupBy);
36-
_settings.Changed += Raise.Event<SettingsEventHandler>(this, new SettingsEventArgs("TestCentric.Gui.TestTree.NUnitGroupBy"));
38+
// 1. Arrange
39+
_model.TreeConfiguration.DisplayFormat.Returns("NUNIT_TREE");
40+
_model.TreeConfiguration.NUnitGroupBy.Returns(groupBy);
3741

38-
// 2. Assert
42+
// 2. Act
43+
_model.TreeConfiguration.Changed += Raise.Event<SettingsEventHandler>(null, new SettingsEventArgs(nameof(TreeConfiguration.NUnitGroupBy)));
44+
45+
// 3. Assert
3946
Assert.That(_view.NUnitGroupBy.SelectedItem, Is.EqualTo(groupBy));
4047
}
4148

4249
[TestCase("ASSEMBLY")]
4350
[TestCase("CATEGORY")]
4451
[TestCase("OUTCOME")]
45-
public void TestListGroupBy_SettingChanged_MenuItemIsUpdated(string groupBy)
52+
public void TestListGroupBy_TreeConfigurationChanged_MenuItemIsUpdated(string groupBy)
4653
{
47-
// 1. Act
48-
_settings.Gui.TestTree.TestList.GroupBy.Returns(groupBy);
49-
_settings.Changed += Raise.Event<SettingsEventHandler>(this, new SettingsEventArgs("TestCentric.Gui.TestTree.TestList.GroupBy"));
54+
// 1. Arrange
55+
_model.TreeConfiguration.DisplayFormat.Returns("TEST_LIST");
56+
_model.TreeConfiguration.TestListGroupBy.Returns(groupBy);
5057

51-
// 2. Assert
58+
// 2. Act
59+
_model.TreeConfiguration.Changed += Raise.Event<SettingsEventHandler>(null, new SettingsEventArgs(nameof(TreeConfiguration.TestListGroupBy)));
60+
61+
// 3. Assert
5262
Assert.That(_view.TestListGroupBy.SelectedItem, Is.EqualTo(groupBy));
5363
}
5464

5565
[TestCase(true)]
5666
[TestCase(false)]
57-
public void ShowNamespace_SettingChanged_MenuItemIsUpdated(bool showNamespace)
67+
public void ShowNamespace_TreeConfigurationChanged_MenuItemIsUpdated(bool showNamespace)
5868
{
59-
// 1. Act
60-
_settings.Gui.TestTree.ShowNamespace.Returns(showNamespace);
61-
_settings.Changed += Raise.Event<SettingsEventHandler>(this, new SettingsEventArgs("TestCentric.Gui.TestTree.ShowNamespace"));
69+
// 1. Arrange
70+
_model.TreeConfiguration.ShowNamespaces.Returns(showNamespace);
71+
72+
// 2. Act
73+
_model.TreeConfiguration.Changed += Raise.Event<SettingsEventHandler>(null, new SettingsEventArgs(nameof(TreeConfiguration.ShowNamespaces)));
6274

6375
// 2. Assert
6476
Assert.That(_view.ShowNamespace.Checked, Is.EqualTo(showNamespace));
6577
}
6678

6779
[TestCase("NUNIT_TREE", true)]
6880
[TestCase("TEST_LIST", false)]
69-
public void DisplayFormat_SettingChanged_ShowHideFilterButton_IsUpdated(string displayFormat, bool expectedState)
81+
public void DisplayFormat_TreeConfigurationChanged_ShowHideFilterButton_IsUpdated(string displayFormat, bool expectedState)
7082
{
7183
// 1. Arrange
7284
_model.HasTests.Returns(true);
85+
_model.TreeConfiguration.DisplayFormat.Returns(displayFormat);
7386

7487
// 2. Act
75-
_settings.Gui.TestTree.DisplayFormat.Returns(displayFormat);
76-
_settings.Changed += Raise.Event<SettingsEventHandler>(this, new SettingsEventArgs("TestCentric.Gui.TestTree.DisplayFormat"));
88+
_model.TreeConfiguration.Changed += Raise.Event<SettingsEventHandler>(null, new SettingsEventArgs(nameof(TreeConfiguration.DisplayFormat)));
89+
7790

7891
// 3. Assert
7992
Assert.That(_view.ShowHideFilterButton.Visible, Is.EqualTo(expectedState));

src/GuiRunner/TestCentric.Gui.Tests/Presenters/NUnitGrouping/CategoryGroupingTests.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ public void Setup()
2626
{
2727
_model = Substitute.For<ITestModel>();
2828
IUserSettings userSettings = Substitute.For<IUserSettings>();
29-
userSettings.Gui.TestTree.DisplayFormat.Returns("NUNIT_TREE");
30-
userSettings.Gui.TestTree.NUnitGroupBy.Returns("CATEGORY");
31-
userSettings.Gui.TestTree.ShowNamespace.Returns(true);
29+
_model.TreeConfiguration.DisplayFormat = "NUNIT_TREE";
30+
_model.TreeConfiguration.NUnitGroupBy = "CATEGORY";
31+
_model.TreeConfiguration.ShowNamespaces = true;
32+
3233
_model.Settings.Returns(userSettings);
3334
_view = Substitute.For<ITestTreeView>();
3435

src/GuiRunner/TestCentric.Gui.Tests/Presenters/NUnitGrouping/DurationGroupingTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ public void Setup()
2828
_view = Substitute.For<ITestTreeView>();
2929
_view.InvokeIfRequired(Arg.Do<MethodInvoker>(x => x.Invoke()));
3030
IUserSettings userSettings = Substitute.For<IUserSettings>();
31-
userSettings.Gui.TestTree.DisplayFormat.Returns("NUNIT_TREE");
32-
userSettings.Gui.TestTree.NUnitGroupBy.Returns("DURATION");
33-
userSettings.Gui.TestTree.ShowNamespace.Returns(true);
31+
_model.TreeConfiguration.DisplayFormat = "NUNIT_TREE";
32+
_model.TreeConfiguration.NUnitGroupBy = "DURATION";
33+
_model.TreeConfiguration.ShowNamespaces = true;
3434
_model.Settings.Returns(userSettings);
3535

3636
var treeView = new TreeView();

src/GuiRunner/TestCentric.Gui.Tests/Presenters/NUnitGrouping/OutcomeGroupingTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ public void Setup()
2929
_view = Substitute.For<ITestTreeView>();
3030
_view.InvokeIfRequired(Arg.Do<MethodInvoker>(x => x.Invoke()));
3131
IUserSettings userSettings = Substitute.For<IUserSettings>();
32-
userSettings.Gui.TestTree.DisplayFormat.Returns("NUNIT_TREE");
33-
userSettings.Gui.TestTree.NUnitGroupBy.Returns("OUTCOME");
34-
userSettings.Gui.TestTree.ShowNamespace.Returns(true);
32+
_model.TreeConfiguration.DisplayFormat = "NUNIT_TREE";
33+
_model.TreeConfiguration.NUnitGroupBy = "OUTCOME";
34+
_model.TreeConfiguration.ShowNamespaces = true;
3535
_model.Settings.Returns(userSettings);
3636

3737
var treeView = new TreeView();

src/GuiRunner/TestCentric.Gui.Tests/Presenters/NUnitGrouping/TreeNodeViewModelTests.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public void Name()
4141
public void DisplayName_ForTestCase(bool showTestDuration)
4242
{
4343
// 1. Arrange
44-
_model.Settings.Gui.TestTree.ShowTestDuration.Returns(showTestDuration);
44+
_model.TreeConfiguration.ShowTestDuration = showTestDuration;
4545
TestNode testNode = new TestNode("<test-case id='1' name='TestA' />");
4646
TreeNodeViewModel viewModel = CreateViewModel(testNode, "1");
4747

@@ -72,7 +72,7 @@ public void DisplayName_ForFixture_WithoutTestcases()
7272
public void DisplayName_ForFixture_WithTestcases(bool showTestDuration)
7373
{
7474
// 1. Arrange
75-
_model.Settings.Gui.TestTree.ShowTestDuration.Returns(showTestDuration);
75+
_model.TreeConfiguration.ShowTestDuration = showTestDuration;
7676
TestNode testNode = new TestNode("<test-suite type='TestFixture' id='0' name='Fixture1'><test-case id='1' name='TestA' /> </test-suite>");
7777
TreeNodeViewModel viewModel = CreateViewModel(testNode, "0");
7878

@@ -115,7 +115,7 @@ public void DisplayName_ForSampleProject2_ContainsTestCount()
115115
public void DisplayName_ShowTestDurationIsEnabled_ForTestCase_ContainsDuration()
116116
{
117117
// 1. Arrange
118-
_model.Settings.Gui.TestTree.ShowTestDuration.Returns(true);
118+
_model.TreeConfiguration.ShowTestDuration = true;
119119
TestNode testNode = new TestNode("<test-case id='1' name='TestA' />");
120120
TreeNodeViewModel viewModel = CreateViewModel(testNode, "1");
121121
ResultNode resultNode = new ResultNode("<test-case id='1' duration='1.0'/>");
@@ -132,7 +132,7 @@ public void DisplayName_ShowTestDurationIsEnabled_ForTestCase_ContainsDuration()
132132
public void DisplayName_ShowTestDurationIsEnabled_ForTestFixture_ContainsDuration()
133133
{
134134
// 1. Arrange
135-
_model.Settings.Gui.TestTree.ShowTestDuration.Returns(true);
135+
_model.TreeConfiguration.ShowTestDuration = true;
136136
TestNode testNode = TestFilterData.GetSampleTestProject();
137137
ResultNode resultNode0 = new ResultNode("<test-case id='3-1010' duration='1.0'/>");
138138
ResultNode resultNode1 = new ResultNode("<test-case id='3-1011' duration='1.0'/>");
@@ -154,7 +154,7 @@ public void DisplayName_ShowTestDurationIsEnabled_ForTestFixture_ContainsDuratio
154154
public void SetInTestRun_AllChildrenAndAllParent_AreInRun()
155155
{
156156
// 1. Arrange
157-
_model.Settings.Gui.TestTree.ShowTestDuration.Returns(true);
157+
_model.TreeConfiguration.ShowTestDuration = true;
158158
TestNode testNode = TestFilterData.GetSampleTestProject();
159159
TreeNodeViewModel rootViewModel = CreateViewModel(testNode, "3-1000");
160160

@@ -300,7 +300,7 @@ public void OnTestRunStarted_ResetsIsResultFromLastRun()
300300
public void OnTestRunStarted_ResetsTestDuration_WhenInTestRun()
301301
{
302302
// 1. Arrange
303-
_model.Settings.Gui.TestTree.ShowTestDuration.Returns(true);
303+
_model.TreeConfiguration.ShowTestDuration = true;
304304
ResultNode resultNode = new ResultNode("<test-case id='1' result='Passed' duration='2.5'/>");
305305
_model.TestResultManager.GetResultForTest("1").Returns(resultNode);
306306

@@ -589,7 +589,7 @@ public void ResultState_ForSuite_AggregatesChildResults()
589589
public void TestDuration_ForSuite_SumsChildDurations()
590590
{
591591
// 1. Arrange
592-
_model.Settings.Gui.TestTree.ShowTestDuration.Returns(true);
592+
_model.TreeConfiguration.ShowTestDuration = true;
593593
ResultNode resultNode1 = new ResultNode("<test-case id='1' result='Passed' duration='1.5'/>");
594594
ResultNode resultNode2 = new ResultNode("<test-case id='2' result='Passed' duration='2.5'/>");
595595
_model.TestResultManager.GetResultForTest("1").Returns(resultNode1);

src/GuiRunner/TestCentric.Gui.Tests/Presenters/NUnitGrouping/TreeViewModelNoGroupingTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public class TreeViewModelNoGroupingTests
2020
public void Setup()
2121
{
2222
_model = Substitute.For<ITestModel>();
23-
_model.Settings.Gui.TestTree.ShowNamespace.Returns(true);
23+
_model.TreeConfiguration.ShowNamespaces = true;
2424
}
2525

2626
[Test]
@@ -156,7 +156,7 @@ public void CreateTreeModel_WithNestedNamespaces_FoldsNamespaces()
156156
public void CreateTreeModel_ShowNamespaceFalse_OmitsNamespaces()
157157
{
158158
// 1. Arrange
159-
_model.Settings.Gui.TestTree.ShowNamespace.Returns(false);
159+
_model.TreeConfiguration.ShowNamespaces = false;
160160
TestNode rootNode = new TestNode(@"
161161
<test-run id='0'>
162162
<test-suite type='Assembly' id='1' name='Library.Test.dll'>

src/GuiRunner/TestCentric.Gui.Tests/Presenters/NUnitTreeDisplayStrategyTests.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ public void CreateDisplayStrategy()
2424
{
2525
_view = Substitute.For<ITestTreeView>();
2626
_model = Substitute.For<ITestModel>();
27-
_model.Settings.Gui.TestTree.ShowNamespace.Returns(true);
27+
_model.TreeConfiguration.ShowNamespaces = true;
28+
_model.TreeConfiguration.DisplayFormat = "NUNIT_TREE";
29+
_model.TreeConfiguration.NUnitGroupBy = "UNGROUPED";
2830

2931
// We can't construct a TreeNodeCollection, so we fake it
3032
var nodes = new TreeNode().Nodes;
@@ -127,7 +129,7 @@ public void OnTestRunFinished_Grouping_IsInvoked()
127129
public void OnTestLoaded_Namespaces_AreShown_NamespaceNodes_AreCreated()
128130
{
129131
// Arrange
130-
_model.Settings.Gui.TestTree.ShowNamespace.Returns(true);
132+
_model.TreeConfiguration.ShowNamespaces = true;
131133
string xml =
132134
"<test-suite type='Assembly' id='1-1030' name='Library.Test.dll'>" +
133135
"<test-suite type='TestSuite' id='1-1031' name='Library'>" +
@@ -145,7 +147,7 @@ public void OnTestLoaded_Namespaces_AreShown_NamespaceNodes_AreCreated()
145147
public void OnTestLoaded_Namespaces_AreNotShown_NamespaceNodes_AreNotCreated()
146148
{
147149
// Arrange
148-
_model.Settings.Gui.TestTree.ShowNamespace.Returns(false);
150+
_model.TreeConfiguration.ShowNamespaces = false;
149151
string xml =
150152
"<test-run> <test-suite type='Assembly' id='1-1030' name='Library.Test.dll'>" +
151153
"<test-suite type='TestSuite' id='1-1031' name='Library'>" +

0 commit comments

Comments
 (0)