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] 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; + } }