diff --git a/src/TestCentric/testcentric.gui/Presenters/DisplayStrategy.cs b/src/TestCentric/testcentric.gui/Presenters/DisplayStrategy.cs index ea67aa9a..85125b43 100644 --- a/src/TestCentric/testcentric.gui/Presenters/DisplayStrategy.cs +++ b/src/TestCentric/testcentric.gui/Presenters/DisplayStrategy.cs @@ -75,7 +75,7 @@ public bool HasResults public void OnTestUnloaded() { ClearTree(); - _view.OutcomeFilter.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 4ebf1d10..365fce59 100644 --- a/src/TestCentric/testcentric.gui/Presenters/NUnitTreeDisplayStrategy.cs +++ b/src/TestCentric/testcentric.gui/Presenters/NUnitTreeDisplayStrategy.cs @@ -49,7 +49,7 @@ public override void OnTestLoaded(TestNode testNode, VisualState visualState) else SetDefaultInitialExpansion(); - _view.OutcomeFilter.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/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/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/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..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,17 +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; + _view.Received().EnableTestFilter(false); } }