diff --git a/src/TestCentric/testcentric.gui/Presenters/DisplayStrategy.cs b/src/TestCentric/testcentric.gui/Presenters/DisplayStrategy.cs index ea67aa9a..5e2b28b5 100644 --- a/src/TestCentric/testcentric.gui/Presenters/DisplayStrategy.cs +++ b/src/TestCentric/testcentric.gui/Presenters/DisplayStrategy.cs @@ -102,12 +102,13 @@ public virtual void OnTestRunFinished() // Called when either the display strategy or the grouping // changes. May need to distinguish these cases. - public void Reload() + public void Reload(bool applyVisualState = false) { TestNode testNode = _model.LoadedTests; if (testNode != null) { - OnTestLoaded(testNode, null); + VisualState visualState = applyVisualState ? CreateVisualState() : null; + OnTestLoaded(testNode, visualState); if (_view.Nodes != null) // TODO: Null when mocked foreach (TreeNode treeNode in _view.Nodes) diff --git a/src/TestCentric/testcentric.gui/Presenters/ITreeDisplayStrategy.cs b/src/TestCentric/testcentric.gui/Presenters/ITreeDisplayStrategy.cs index 64d567f0..3345c1c4 100644 --- a/src/TestCentric/testcentric.gui/Presenters/ITreeDisplayStrategy.cs +++ b/src/TestCentric/testcentric.gui/Presenters/ITreeDisplayStrategy.cs @@ -23,7 +23,7 @@ public interface ITreeDisplayStrategy /// /// Reload tree: clear all tree nodes first and rebuild all nodes afterwards /// - void Reload(); + void Reload(bool applyVisualState=false); /// /// Save the visual state of the tree display strategy into a file diff --git a/src/TestCentric/testcentric.gui/Presenters/TreeViewPresenter.cs b/src/TestCentric/testcentric.gui/Presenters/TreeViewPresenter.cs index bb08aecc..6e3f27bb 100644 --- a/src/TestCentric/testcentric.gui/Presenters/TreeViewPresenter.cs +++ b/src/TestCentric/testcentric.gui/Presenters/TreeViewPresenter.cs @@ -112,7 +112,7 @@ private void WireUpEvents() _model.Events.TestFilterChanged += (ea) => { - Strategy?.Reload(); + Strategy?.Reload(true); }; _model.Events.TestFinished += OnTestFinished; diff --git a/src/TestCentric/tests/Presenters/TestTree/TreeViewPresenterTests.cs b/src/TestCentric/tests/Presenters/TestTree/TreeViewPresenterTests.cs index a873eb96..b944ac04 100644 --- a/src/TestCentric/tests/Presenters/TestTree/TreeViewPresenterTests.cs +++ b/src/TestCentric/tests/Presenters/TestTree/TreeViewPresenterTests.cs @@ -262,6 +262,21 @@ public void TextFilterChanged_ApplyFilter() _model.TestCentricTestFilter.Received().TextFilter = "TestA"; } + [Test] + public void FilterChanged_ReloadTree_IsInvoked() + { + // 1. Arrange + ITreeDisplayStrategy strategy = Substitute.For(); + _treeDisplayStrategyFactory.Create(null, null, null).ReturnsForAnyArgs(strategy); + _model.Settings.Gui.TestTree.DisplayFormat = "NUNIT_TREE"; + + // 2. Act + _model.Events.TestFilterChanged += Raise.Event(new TestEventArgs()); + + // 3. Assert + strategy.Received().Reload(true); + } + // TODO: Version 1 Test - Make it work if needed. //[Test] //public void WhenContextNodeIsNotNull_RunCommandExecutesThatTest()