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()