From b740ef823c25b3a4f70077a4f451175c5f3137e1 Mon Sep 17 00:00:00 2001
From: rowo360 <59574371+rowo360@users.noreply.github.com>
Date: Sun, 12 Jan 2025 15:53:19 +0100
Subject: [PATCH 1/2] Disable TextFilter when no project is loaded
---
.../Presenters/DisplayStrategy.cs | 1 +
.../Presenters/NUnitTreeDisplayStrategy.cs | 1 +
.../Presenters/TestCentricPresenter.cs | 1 +
.../Presenters/Main/WhenSettingsChanged.cs | 25 ++++++++++++++++---
.../NUnitTreeDisplayStrategyTests.cs | 25 +++++++++++++++++++
5 files changed, 49 insertions(+), 4 deletions(-)
diff --git a/src/TestCentric/testcentric.gui/Presenters/DisplayStrategy.cs b/src/TestCentric/testcentric.gui/Presenters/DisplayStrategy.cs
index ea67aa9a..3faad51d 100644
--- a/src/TestCentric/testcentric.gui/Presenters/DisplayStrategy.cs
+++ b/src/TestCentric/testcentric.gui/Presenters/DisplayStrategy.cs
@@ -76,6 +76,7 @@ public void OnTestUnloaded()
{
ClearTree();
_view.OutcomeFilter.Enabled = false;
+ _view.TextFilter.Enabled = false;
}
public virtual void OnTestFinished(ResultNode result)
diff --git a/src/TestCentric/testcentric.gui/Presenters/NUnitTreeDisplayStrategy.cs b/src/TestCentric/testcentric.gui/Presenters/NUnitTreeDisplayStrategy.cs
index 4ebf1d10..8d12c908 100644
--- a/src/TestCentric/testcentric.gui/Presenters/NUnitTreeDisplayStrategy.cs
+++ b/src/TestCentric/testcentric.gui/Presenters/NUnitTreeDisplayStrategy.cs
@@ -50,6 +50,7 @@ public override void OnTestLoaded(TestNode testNode, VisualState visualState)
SetDefaultInitialExpansion();
_view.OutcomeFilter.Enabled = true;
+ _view.TextFilter.Enabled = true;
}
protected override VisualState CreateVisualState() => new VisualState("NUNIT_TREE", _settings.Gui.TestTree.ShowNamespace).LoadFrom(_view.TreeView);
diff --git a/src/TestCentric/testcentric.gui/Presenters/TestCentricPresenter.cs b/src/TestCentric/testcentric.gui/Presenters/TestCentricPresenter.cs
index 566423e5..22fedd6a 100644
--- a/src/TestCentric/testcentric.gui/Presenters/TestCentricPresenter.cs
+++ b/src/TestCentric/testcentric.gui/Presenters/TestCentricPresenter.cs
@@ -259,6 +259,7 @@ void OnRunFinished(ResultNode result)
case "TestCentric.Gui.TestTree.DisplayFormat":
_view.DisplayFormat.SelectedItem = _settings.Gui.TestTree.DisplayFormat;
UpdateTreeDisplayMenuItem();
+ UpdateViewCommands();
break;
case "TestCentric.Gui.TestTree.TestList.GroupBy":
_view.GroupBy.SelectedItem = _settings.Gui.TestTree.TestList.GroupBy;
diff --git a/src/TestCentric/tests/Presenters/Main/WhenSettingsChanged.cs b/src/TestCentric/tests/Presenters/Main/WhenSettingsChanged.cs
index 3e495527..a14068bb 100644
--- a/src/TestCentric/tests/Presenters/Main/WhenSettingsChanged.cs
+++ b/src/TestCentric/tests/Presenters/Main/WhenSettingsChanged.cs
@@ -3,6 +3,7 @@
// Licensed under the MIT License. See LICENSE file in root directory.
// ***********************************************************************
+using NSubstitute;
using NUnit.Framework;
namespace TestCentric.Gui.Presenters.Main
@@ -18,7 +19,7 @@ public void DisplayFormat_SettingChanged_MenuItemIsUpdated(string displayFormat)
_settings.Gui.TestTree.DisplayFormat = displayFormat;
// 2. Assert
- _view.DisplayFormat.SelectedItem = displayFormat;
+ Assert.That(_view.DisplayFormat.SelectedItem, Is.EqualTo(displayFormat));
}
[TestCase("ASSEMBLY")]
@@ -30,7 +31,7 @@ public void FixtureListGroupBy_SettingChanged_MenuItemIsUpdated(string groupBy)
_settings.Gui.TestTree.FixtureList.GroupBy = groupBy;
// 2. Assert
- _view.GroupBy.SelectedItem = groupBy;
+ Assert.That(_view.GroupBy.SelectedItem, Is.EqualTo(groupBy));
}
[TestCase("ASSEMBLY")]
@@ -42,7 +43,7 @@ public void TestListGroupBy_SettingChanged_MenuItemIsUpdated(string groupBy)
_settings.Gui.TestTree.TestList.GroupBy = groupBy;
// 2. Assert
- _view.GroupBy.SelectedItem = groupBy;
+ Assert.That(_view.GroupBy.SelectedItem, Is.EqualTo(groupBy));
}
[TestCase(true, 0)]
@@ -53,7 +54,23 @@ public void ShowNamespace_SettingChanged_MenuItemIsUpdated(bool showNamespace, i
_settings.Gui.TestTree.ShowNamespace = showNamespace;
// 2. Assert
- _view.ShowNamespace.SelectedIndex = expectedMenuIndex;
+ Assert.That(_view.ShowNamespace.SelectedIndex, Is.EqualTo(expectedMenuIndex));
+ }
+
+ [TestCase("NUNIT_TREE", true)]
+ [TestCase("FIXTURE_LIST", false)]
+ [TestCase("TEST_LIST", false)]
+ public void DisplayFormat_SettingChanged_ShowHideFilterButton_IsUpdated(string displayFormat, bool expectedState)
+ {
+ // 1. Arrange
+ _model.HasTests.Returns(true);
+
+ // 2. Act
+ _settings.Gui.TestTree.DisplayFormat = displayFormat;
+
+ // 3. Assert
+ Assert.That(_view.ShowHideFilterButton.Visible, Is.EqualTo(expectedState));
+ Assert.That(_view.ShowHideFilterButton.Enabled, Is.EqualTo(expectedState));
}
}
}
diff --git a/src/TestCentric/tests/Presenters/NUnitTreeDisplayStrategyTests.cs b/src/TestCentric/tests/Presenters/NUnitTreeDisplayStrategyTests.cs
index 8a81d69d..ab6ec401 100644
--- a/src/TestCentric/tests/Presenters/NUnitTreeDisplayStrategyTests.cs
+++ b/src/TestCentric/tests/Presenters/NUnitTreeDisplayStrategyTests.cs
@@ -383,6 +383,31 @@ public void OnTestUnloaded_OutcomeFilter_IsDisabled()
// Assert
_view.OutcomeFilter.Received().Enabled = false;
}
+
+ [Test]
+ public void OnTestLoaded_TextFilter_IsEnabled()
+ {
+ // Arrange
+ string xml =
+ "" +
+ "";
+
+ // Act
+ _strategy.OnTestLoaded(new TestNode(xml), null);
+
+ // Assert
+ _view.TextFilter.Received().Enabled = true;
+ }
+
+ [Test]
+ public void OnTestUnloaded_TextFilter_IsDisabled()
+ {
+ // Arrange + Act
+ _strategy.OnTestUnloaded();
+
+ // Assert
+ _view.TextFilter.Received().Enabled = false;
+ }
}
From 63d6aed266be83c368ef94cf0e3b1a124205fc2d Mon Sep 17 00:00:00 2001
From: rowo360 <59574371+rowo360@users.noreply.github.com>
Date: Sun, 19 Jan 2025 17:33:15 +0100
Subject: [PATCH 2/2] Add method ITestTreeView.EnableTestFilter(bool enable) to
enable/disable all filter all at once
---
.../Presenters/DisplayStrategy.cs | 3 +-
.../Presenters/NUnitTreeDisplayStrategy.cs | 3 +-
.../testcentric.gui/Views/ITestTreeView.cs | 2 ++
.../testcentric.gui/Views/TestTreeView.cs | 6 ++++
.../NUnitTreeDisplayStrategyTests.cs | 33 +++----------------
5 files changed, 14 insertions(+), 33 deletions(-)
diff --git a/src/TestCentric/testcentric.gui/Presenters/DisplayStrategy.cs b/src/TestCentric/testcentric.gui/Presenters/DisplayStrategy.cs
index 3faad51d..85125b43 100644
--- a/src/TestCentric/testcentric.gui/Presenters/DisplayStrategy.cs
+++ b/src/TestCentric/testcentric.gui/Presenters/DisplayStrategy.cs
@@ -75,8 +75,7 @@ public bool HasResults
public void OnTestUnloaded()
{
ClearTree();
- _view.OutcomeFilter.Enabled = false;
- _view.TextFilter.Enabled = false;
+ _view.EnableTestFilter(false);
}
public virtual void OnTestFinished(ResultNode result)
diff --git a/src/TestCentric/testcentric.gui/Presenters/NUnitTreeDisplayStrategy.cs b/src/TestCentric/testcentric.gui/Presenters/NUnitTreeDisplayStrategy.cs
index 8d12c908..365fce59 100644
--- a/src/TestCentric/testcentric.gui/Presenters/NUnitTreeDisplayStrategy.cs
+++ b/src/TestCentric/testcentric.gui/Presenters/NUnitTreeDisplayStrategy.cs
@@ -49,8 +49,7 @@ public override void OnTestLoaded(TestNode testNode, VisualState visualState)
else
SetDefaultInitialExpansion();
- _view.OutcomeFilter.Enabled = true;
- _view.TextFilter.Enabled = true;
+ _view.EnableTestFilter(true);
}
protected override VisualState CreateVisualState() => new VisualState("NUNIT_TREE", _settings.Gui.TestTree.ShowNamespace).LoadFrom(_view.TreeView);
diff --git a/src/TestCentric/testcentric.gui/Views/ITestTreeView.cs b/src/TestCentric/testcentric.gui/Views/ITestTreeView.cs
index 806608e5..cf181fc2 100644
--- a/src/TestCentric/testcentric.gui/Views/ITestTreeView.cs
+++ b/src/TestCentric/testcentric.gui/Views/ITestTreeView.cs
@@ -57,6 +57,8 @@ public interface ITestTreeView : IView
void SetTestFilterVisibility(bool visible);
+ void EnableTestFilter(bool enable);
+
// Tree-related Methods
void Clear();
void Add(TreeNode treeNode);
diff --git a/src/TestCentric/testcentric.gui/Views/TestTreeView.cs b/src/TestCentric/testcentric.gui/Views/TestTreeView.cs
index ef0eeed5..3167d029 100644
--- a/src/TestCentric/testcentric.gui/Views/TestTreeView.cs
+++ b/src/TestCentric/testcentric.gui/Views/TestTreeView.cs
@@ -211,6 +211,12 @@ public void SetTestFilterVisibility(bool isVisible)
filterTextToolStrip.Visible = isVisible;
}
+ public void EnableTestFilter(bool enable)
+ {
+ filterToolStrip.Enabled = enable;
+ filterTextToolStrip.Enabled = enable;
+ }
+
public void LoadAlternateImages(string imageSet)
{
string[] imageNames = { "Skipped", "Inconclusive", "Success", "Ignored", "Failure" };
diff --git a/src/TestCentric/tests/Presenters/NUnitTreeDisplayStrategyTests.cs b/src/TestCentric/tests/Presenters/NUnitTreeDisplayStrategyTests.cs
index ab6ec401..906767a8 100644
--- a/src/TestCentric/tests/Presenters/NUnitTreeDisplayStrategyTests.cs
+++ b/src/TestCentric/tests/Presenters/NUnitTreeDisplayStrategyTests.cs
@@ -360,7 +360,7 @@ public void OnTestLoaded_SetupFixtureNode_ContainingTwoNamespaces_AreNotFolded()
}
[Test]
- public void OnTestLoaded_OutcomeFilter_IsEnabled()
+ public void OnTestLoaded_TestFilters_AreEnabled()
{
// Arrange
string xml =
@@ -371,42 +371,17 @@ public void OnTestLoaded_OutcomeFilter_IsEnabled()
_strategy.OnTestLoaded(new TestNode(xml), null);
// Assert
- _view.OutcomeFilter.Received().Enabled = true;
+ _view.Received().EnableTestFilter(true);
}
[Test]
- public void OnTestUnloaded_OutcomeFilter_IsDisabled()
+ public void OnTestUnloaded_TestFilters_AreDisabled()
{
// Arrange + Act
_strategy.OnTestUnloaded();
// Assert
- _view.OutcomeFilter.Received().Enabled = false;
- }
-
- [Test]
- public void OnTestLoaded_TextFilter_IsEnabled()
- {
- // Arrange
- string xml =
- "" +
- "";
-
- // Act
- _strategy.OnTestLoaded(new TestNode(xml), null);
-
- // Assert
- _view.TextFilter.Received().Enabled = true;
- }
-
- [Test]
- public void OnTestUnloaded_TextFilter_IsDisabled()
- {
- // Arrange + Act
- _strategy.OnTestUnloaded();
-
- // Assert
- _view.TextFilter.Received().Enabled = false;
+ _view.Received().EnableTestFilter(false);
}
}