Index: Core/Common/src/Core.Common.Controls.TreeView/TreeViewControl.cs =================================================================== diff -u -r9c811f0b982e9e29dc0652dfad928ff08ae75a3d -rb8e09b3d2c44242360c4426659bcf30a0d674df3 --- Core/Common/src/Core.Common.Controls.TreeView/TreeViewControl.cs (.../TreeViewControl.cs) (revision 9c811f0b982e9e29dc0652dfad928ff08ae75a3d) +++ Core/Common/src/Core.Common.Controls.TreeView/TreeViewControl.cs (.../TreeViewControl.cs) (revision b8e09b3d2c44242360c4426659bcf30a0d674df3) @@ -123,62 +123,46 @@ tagTypeTreeNodeInfoLookup[treeNodeInfo.TagType] = treeNodeInfo; } - public bool CanRename(TreeNode node) + public bool CanRenameNodeForData(object dataObject) { - var treeNodeInfo = GetTreeNodeInfoForData(node.Tag); + var treeNode = GetNodeByTag(dataObject); - return treeNodeInfo.CanRename != null && treeNodeInfo.CanRename(node); + return CanRename(treeNode); } - public bool CanRemove(TreeNode node) + public bool CanRemoveNodeForData(object dataObject) { - var treeNodeInfo = GetTreeNodeInfoForData(node.Tag); + var treeNode = GetNodeByTag(dataObject); - return treeNodeInfo.CanRemove != null && treeNodeInfo.CanRemove(node.Tag, node.Parent != null ? node.Parent.Tag : null); + return CanRemove(treeNode); } - public void DeleteNode(TreeNode node) + public void RemoveNodeForData(object dataObject) { - if (!CanRemove(node)) - { - MessageBox.Show(Resources.TreeView_DeleteNodeData_The_selected_item_cannot_be_removed, BaseResources.Confirm, MessageBoxButtons.OK); - return; - } + var treeNode = GetNodeByTag(dataObject); - var message = string.Format(Resources.TreeView_DeleteNodeData_Are_you_sure_you_want_to_delete_the_following_item_0_, node.Text); - if (MessageBox.Show(message, BaseResources.Confirm, MessageBoxButtons.OKCancel) != DialogResult.OK) - { - return; - } + Remove(treeNode); + } - var treeNodeInfo = GetTreeNodeInfoForData(node.Tag); + public bool CanExpandOrCollapseAllNodesForData(object dataObject) + { + var treeNode = GetNodeByTag(dataObject); - if (treeNodeInfo.OnNodeRemoved != null) - { - treeNodeInfo.OnNodeRemoved(node.Tag, node.Parent != null ? node.Parent.Tag : null); - } - - OnNodeDataDeleted(node); + return treeNode.Nodes.OfType().Any(); } - public void CollapseAll(TreeNode node) + public void CollapseAllNodesForData(object dataObject) { - node.Collapse(); + var treeNode = GetNodeByTag(dataObject); - foreach (var childNode in node.Nodes.OfType()) - { - CollapseAll(childNode); - } + CollapseAll(treeNode); } - public void ExpandAll(TreeNode node) + public void ExpandAllNodesForData(object dataObject) { - node.Expand(); + var treeNode = GetNodeByTag(dataObject); - foreach (var childNode in node.Nodes.OfType()) - { - ExpandAll(childNode); - } + ExpandAll(treeNode); } public void SelectNodeForData(object dataObject) @@ -200,9 +184,74 @@ /// The corresponding the provided node data or null if not found. public TreeNode GetNodeByTag(object nodeData) { - return treeView.Nodes.Count > 0 ? GetNodeByTag(treeView.Nodes[0], nodeData) : null; + var node = treeView.Nodes.Count > 0 ? GetNodeByTag(treeView.Nodes[0], nodeData) : null; + + if (node == null) + { + throw new InvalidOperationException("No corresponding node found in the tree view."); + } + + return node; } + private bool CanRename(TreeNode treeNode) + { + var treeNodeInfo = GetTreeNodeInfoForData(treeNode.Tag); + + return treeNodeInfo.CanRename != null && treeNodeInfo.CanRename(treeNode); + } + + private bool CanRemove(TreeNode treeNode) + { + var treeNodeInfo = GetTreeNodeInfoForData(treeNode.Tag); + + return treeNodeInfo.CanRemove != null && treeNodeInfo.CanRemove(treeNode.Tag, treeNode.Parent != null ? treeNode.Parent.Tag : null); + } + + private void Remove(TreeNode treeNode) + { + if (!CanRemove(treeNode)) + { + MessageBox.Show(Resources.TreeView_DeleteNodeData_The_selected_item_cannot_be_removed, BaseResources.Confirm, MessageBoxButtons.OK); + return; + } + + var message = string.Format(Resources.TreeView_DeleteNodeData_Are_you_sure_you_want_to_delete_the_following_item_0_, treeNode.Text); + if (MessageBox.Show(message, BaseResources.Confirm, MessageBoxButtons.OKCancel) != DialogResult.OK) + { + return; + } + + var treeNodeInfo = GetTreeNodeInfoForData(treeNode.Tag); + + if (treeNodeInfo.OnNodeRemoved != null) + { + treeNodeInfo.OnNodeRemoved(treeNode.Tag, treeNode.Parent != null ? treeNode.Parent.Tag : null); + } + + OnNodeDataDeleted(treeNode); + } + + private static void CollapseAll(TreeNode treeNode) + { + treeNode.Collapse(); + + foreach (var childNode in treeNode.Nodes.OfType()) + { + CollapseAll(childNode); + } + } + + private static void ExpandAll(TreeNode treeNode) + { + treeNode.Expand(); + + foreach (var childNode in treeNode.Nodes.OfType()) + { + ExpandAll(childNode); + } + } + private Image CreateCheckBoxGlyph(CheckBoxState state) { var result = new Bitmap(16, 16); @@ -549,7 +598,7 @@ } case Keys.Delete: // Try to delete the selected node { - DeleteNode(selectedNode); + Remove(selectedNode); break; } Index: Core/Common/src/Core.Common.Gui/ContextMenu/TreeViewContextMenuItemFactory.cs =================================================================== diff -u -ra7344a227d40381dd9f5f2559a3402250e97a5f3 -rb8e09b3d2c44242360c4426659bcf30a0d674df3 --- Core/Common/src/Core.Common.Gui/ContextMenu/TreeViewContextMenuItemFactory.cs (.../TreeViewContextMenuItemFactory.cs) (revision a7344a227d40381dd9f5f2559a3402250e97a5f3) +++ Core/Common/src/Core.Common.Gui/ContextMenu/TreeViewContextMenuItemFactory.cs (.../TreeViewContextMenuItemFactory.cs) (revision b8e09b3d2c44242360c4426659bcf30a0d674df3) @@ -20,7 +20,6 @@ // All rights reserved. using System; -using System.Linq; using System.Windows.Forms; using Core.Common.Controls.TreeView; using Core.Common.Gui.Properties; @@ -68,7 +67,7 @@ { ToolTipText = Resources.Rename_ToolTip, Image = Resources.RenameIcon, - Enabled = treeViewControl.CanRename(treeNode) + Enabled = treeViewControl.CanRenameNodeForData(treeNode.Tag) }; toolStripMenuItem.Click += (s, e) => treeNode.BeginEdit(); return toolStripMenuItem; @@ -85,9 +84,9 @@ { ToolTipText = Resources.Delete_ToolTip, Image = Resources.DeleteIcon, - Enabled = treeViewControl.CanRemove(treeNode) + Enabled = treeViewControl.CanRemoveNodeForData(treeNode.Tag) }; - toolStripMenuItem.Click += (s, e) => treeViewControl.DeleteNode(treeNode); + toolStripMenuItem.Click += (s, e) => treeViewControl.RemoveNodeForData(treeNode.Tag); return toolStripMenuItem; } @@ -98,14 +97,13 @@ /// The created . public ToolStripItem CreateExpandAllItem() { - var children = treeNode.Nodes.OfType(); var toolStripMenuItem = new ToolStripMenuItem(Resources.Expand_all) { ToolTipText = Resources.Expand_all_ToolTip, Image = Resources.ExpandAllIcon, - Enabled = children.Any() + Enabled = treeViewControl.CanExpandOrCollapseAllNodesForData(treeNode.Tag) }; - toolStripMenuItem.Click += (s, e) => treeViewControl.ExpandAll(treeNode); + toolStripMenuItem.Click += (s, e) => treeViewControl.ExpandAllNodesForData(treeNode.Tag); return toolStripMenuItem; } @@ -116,14 +114,13 @@ /// The created . public ToolStripItem CreateCollapseAllItem() { - var children = treeNode.Nodes.OfType(); var toolStripMenuItem = new ToolStripMenuItem(Resources.Collapse_all) { ToolTipText = Resources.Collapse_all_ToolTip, Image = Resources.CollapseAllIcon, - Enabled = children.Any() + Enabled = treeViewControl.CanExpandOrCollapseAllNodesForData(treeNode.Tag) }; - toolStripMenuItem.Click += (s, e) => treeViewControl.CollapseAll(treeNode); + toolStripMenuItem.Click += (s, e) => treeViewControl.CollapseAllNodesForData(treeNode.Tag); return toolStripMenuItem; } } Index: Core/Common/test/Core.Common.Gui.Test/ContextMenu/ContextMenuBuilderTest.cs =================================================================== diff -u -rc07c8243b6c74fa79a77f2edbc1799375064b057 -rb8e09b3d2c44242360c4426659bcf30a0d674df3 --- Core/Common/test/Core.Common.Gui.Test/ContextMenu/ContextMenuBuilderTest.cs (.../ContextMenuBuilderTest.cs) (revision c07c8243b6c74fa79a77f2edbc1799375064b057) +++ Core/Common/test/Core.Common.Gui.Test/ContextMenu/ContextMenuBuilderTest.cs (.../ContextMenuBuilderTest.cs) (revision b8e09b3d2c44242360c4426659bcf30a0d674df3) @@ -161,21 +161,22 @@ public void AddRenameItem_WhenBuild_ItemAddedToContextMenu() { // Setup + var dataObject = new object(); var treeViewControl = new TreeViewControl(); var applicationFeatureCommandsMock = mocks.StrictMock(); var exportImportHandlerMock = mocks.StrictMock(); var viewCommandsMock = mocks.StrictMock(); - var treeNodeMock = mocks.StrictMock(); var treeNodeInfoMock = mocks.StrictMock>(); - treeNodeMock.Expect(tn => tn.Tag).Return(new object()); - treeNodeInfoMock.CanRename = treeNode => treeNode == treeNodeMock; + treeNodeInfoMock.CanRename = treeNode => treeNode.Tag == dataObject; treeViewControl.RegisterTreeNodeInfo(treeNodeInfoMock); + treeViewControl.Data = dataObject; + mocks.ReplayAll(); - var builder = new ContextMenuBuilder(applicationFeatureCommandsMock, exportImportHandlerMock, viewCommandsMock, treeNodeMock, treeViewControl); + var builder = new ContextMenuBuilder(applicationFeatureCommandsMock, exportImportHandlerMock, viewCommandsMock, new TreeNode { Tag = dataObject }, treeViewControl); // Call var result = builder.AddRenameItem().Build(); @@ -193,28 +194,26 @@ public void AddDeleteItem_WhenBuild_ItemAddedToContextMenu() { // Setup + var nodeData = "string"; + var parentData = new object(); var treeViewControl = new TreeViewControl(); var applicationFeatureCommandsMock = mocks.StrictMock(); var exportImportHandlerMock = mocks.StrictMock(); var viewCommandsMock = mocks.StrictMock(); + var treeNodeInfoMock = mocks.StrictMock>(); + var parentTreeNodeInfoMock = mocks.StrictMock>(); - var treeParentNodeMock = mocks.StrictMock(); - var treeNodeMock = mocks.StrictMock(); - var treeNodeInfoMock = mocks.StrictMock>(); - - treeNodeMock.Stub(tn => tn.Parent).Return(treeParentNodeMock); - var nodeData = new object(); - var parentData = new object(); - treeNodeMock.Stub(tn => tn.Tag).Return(nodeData); - treeParentNodeMock.Expect(tn => tn.Tag).Return(parentData); - treeNodeInfoMock.CanRemove = (nd, pnd) => nd == nodeData && pnd == parentData; + parentTreeNodeInfoMock.ChildNodeObjects = nd => new object[] { nodeData }; treeViewControl.RegisterTreeNodeInfo(treeNodeInfoMock); + treeViewControl.RegisterTreeNodeInfo(parentTreeNodeInfoMock); + treeViewControl.Data = parentData; + mocks.ReplayAll(); - var builder = new ContextMenuBuilder(applicationFeatureCommandsMock, exportImportHandlerMock, viewCommandsMock, treeNodeMock, treeViewControl); + var builder = new ContextMenuBuilder(applicationFeatureCommandsMock, exportImportHandlerMock, viewCommandsMock, new TreeNode { Tag = nodeData }, treeViewControl); // Call var result = builder.AddDeleteItem().Build(); @@ -234,16 +233,14 @@ public void AddExpandAllItem_WhenBuild_ItemAddedToContextMenu(bool hasChildren) { // Setup + var dataObject = new object(); + var treeNode = new TreeNode { Tag = dataObject }; var applicationFeatureCommandsMock = mocks.StrictMock(); var exportImportHandlerMock = mocks.StrictMock(); var viewCommandsMock = mocks.StrictMock(); var treeViewControlMock = mocks.StrictMock(); - var treeNode= new TreeNode(); - if (hasChildren) - { - treeNode.Nodes.Add(new TreeNode()); - } + treeViewControlMock.Expect(tvc => tvc.CanExpandOrCollapseAllNodesForData(dataObject)).Return(hasChildren); mocks.ReplayAll(); @@ -267,16 +264,14 @@ public void AddCollapseAllItem_WhenBuild_ItemAddedToContextMenu(bool hasChildren) { // Setup + var dataObject = new object(); + var treeNode = new TreeNode { Tag = dataObject }; var applicationFeatureCommandsMock = mocks.StrictMock(); var exportImportHandlerMock = mocks.StrictMock(); var viewCommandsMock = mocks.StrictMock(); var treeViewControlMock = mocks.StrictMock(); - var treeNode = new TreeNode(); - if (hasChildren) - { - treeNode.Nodes.Add(new TreeNode()); - } + treeViewControlMock.Expect(tvc => tvc.CanExpandOrCollapseAllNodesForData(dataObject)).Return(hasChildren); mocks.ReplayAll(); Index: Core/Common/test/Core.Common.Gui.Test/ContextMenu/TreeViewContextMenuItemFactoryTest.cs =================================================================== diff -u -ra7344a227d40381dd9f5f2559a3402250e97a5f3 -rb8e09b3d2c44242360c4426659bcf30a0d674df3 --- Core/Common/test/Core.Common.Gui.Test/ContextMenu/TreeViewContextMenuItemFactoryTest.cs (.../TreeViewContextMenuItemFactoryTest.cs) (revision a7344a227d40381dd9f5f2559a3402250e97a5f3) +++ Core/Common/test/Core.Common.Gui.Test/ContextMenu/TreeViewContextMenuItemFactoryTest.cs (.../TreeViewContextMenuItemFactoryTest.cs) (revision b8e09b3d2c44242360c4426659bcf30a0d674df3) @@ -74,7 +74,7 @@ [Test] [TestCase(true)] [TestCase(false)] - public void CreateDeleteItem_DependingOnCanDelete_ItemWithDeleteFunctionWillBeEnabled(bool canDelete) + public void CreateDeleteItem_DependingOnCanRemoveNodeForData_ItemWithDeleteFunctionWillBeEnabled(bool canDelete) { // Setup var treeNodeMock = mocks.StrictMock(); @@ -100,11 +100,11 @@ return !canDelete; }; - treeViewControlMock.Expect(tvc => tvc.CanRemove(treeNodeMock)).Return(canDelete); + treeViewControlMock.Expect(tvc => tvc.CanRemoveNodeForData(nodeData)).Return(canDelete); if (canDelete) { - treeViewControlMock.Expect(tvc => tvc.DeleteNode(treeNodeMock)); + treeViewControlMock.Expect(tvc => tvc.RemoveNodeForData(nodeData)); } mocks.ReplayAll(); @@ -127,13 +127,16 @@ [Test] [TestCase(true)] [TestCase(false)] - public void CreateRenameItem_DependingOnCanRename_ItemWithDeleteFunctionWillBeEnabled(bool canRename) + public void CreateRenameItem_DependingOnCanRenameNodeForData_ItemWithDeleteFunctionWillBeEnabled(bool canRename) { // Setup + var dataObject = new object(); var treeNodeMock = mocks.StrictMock(); var treeNodeInfoMock = mocks.StrictMock(); var treeViewControlMock = mocks.StrictMock(); + treeNodeMock.Expect(tn => tn.Tag).Return(dataObject); + treeNodeInfoMock.CanRename = tn => { if (tn == treeNodeMock) @@ -144,7 +147,7 @@ return !canRename; }; - treeViewControlMock.Expect(tvc => tvc.CanRename(treeNodeMock)).Return(canRename); + treeViewControlMock.Expect(tvc => tvc.CanRenameNodeForData(dataObject)).Return(canRename); if (canRename) { @@ -174,20 +177,27 @@ public void CreateExpandAllItem_DependingOnChildNodes_ItemWithExpandFunctionWillBeEnabled(bool hasChildren) { // Setup - var treeNode = new TreeNode(); - var treeNodeInfo = new TreeNodeInfo(); + var dataObject = "string"; + var treeNodeInfo = new TreeNodeInfo(); + var childTreeNodeInfo = new TreeNodeInfo(); var treeViewControl = new TreeViewControl(); if (hasChildren) { - treeNode.Nodes.Add(new TreeNode()); - treeNodeInfo.ChildNodeObjects = o => new object[] { new TreeNode() }; + treeNodeInfo.ChildNodeObjects = o => new object[] + { + new TreeNode + { + Tag = 10.0 + } + }; } - var factory = new TreeViewContextMenuItemFactory(treeNode, treeViewControl); + var factory = new TreeViewContextMenuItemFactory(new TreeNode { Tag = dataObject }, treeViewControl); - // Precondition - Assert.IsFalse(treeNode.IsExpanded); + treeViewControl.RegisterTreeNodeInfo(treeNodeInfo); + treeViewControl.RegisterTreeNodeInfo(childTreeNodeInfo); + treeViewControl.Data = dataObject; // Call var item = factory.CreateExpandAllItem(); @@ -198,7 +208,6 @@ Assert.AreEqual(Resources.Expand_all_ToolTip, item.ToolTipText); TestHelper.AssertImagesAreEqual(Resources.ExpandAllIcon, item.Image); Assert.AreEqual(hasChildren, item.Enabled); - Assert.AreEqual(hasChildren, treeNode.IsExpanded); mocks.VerifyAll(); } @@ -209,22 +218,28 @@ public void CreateCollapseAllItem_DependingOnChildNodes_ItemWithCollapseFunctionWillBeEnabled(bool hasChildren) { // Setup - var treeNode = new TreeNode(); - var treeNodeInfo = new TreeNodeInfo(); + var dataObject = "string"; + var treeNodeInfo = new TreeNodeInfo(); + var childTreeNodeInfo = new TreeNodeInfo(); var treeViewControl = new TreeViewControl(); if (hasChildren) { - treeNode.Expand(); - treeNode.Nodes.Add(new TreeNode()); - treeNodeInfo.ChildNodeObjects = o => new object[] { new TreeNode() }; - - // Precondition - Assert.IsTrue(treeNode.IsExpanded); + treeNodeInfo.ChildNodeObjects = o => new object[] + { + new TreeNode + { + Tag = 10.0 + } + }; } - var factory = new TreeViewContextMenuItemFactory(treeNode, treeViewControl); + var factory = new TreeViewContextMenuItemFactory(new TreeNode { Tag = dataObject }, treeViewControl); + treeViewControl.RegisterTreeNodeInfo(treeNodeInfo); + treeViewControl.RegisterTreeNodeInfo(childTreeNodeInfo); + treeViewControl.Data = dataObject; + // Call var item = factory.CreateCollapseAllItem(); item.PerformClick(); @@ -234,7 +249,6 @@ Assert.AreEqual(Resources.Collapse_all_ToolTip, item.ToolTipText); TestHelper.AssertImagesAreEqual(Resources.CollapseAllIcon, item.Image); Assert.AreEqual(hasChildren, item.Enabled); - Assert.IsFalse(treeNode.IsExpanded); mocks.VerifyAll(); } Index: Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/ProjectExplorerTest.cs =================================================================== diff -u -rdaac7f75692224f6ad3b765cb0b3d8117c1165a6 -rb8e09b3d2c44242360c4426659bcf30a0d674df3 --- Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/ProjectExplorerTest.cs (.../ProjectExplorerTest.cs) (revision daac7f75692224f6ad3b765cb0b3d8117c1165a6) +++ Core/Plugins/test/Core.Plugins.ProjectExplorer.Test/ProjectExplorerTest.cs (.../ProjectExplorerTest.cs) (revision b8e09b3d2c44242360c4426659bcf30a0d674df3) @@ -170,7 +170,7 @@ }) { // Call - explorer.TreeViewControl.DeleteNode(explorer.TreeViewControl.GetNodeByTag(project)); + explorer.TreeViewControl.RemoveNodeForData(project); } // Assert mocks.VerifyAll(); Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -rc07c8243b6c74fa79a77f2edbc1799375064b057 -rb8e09b3d2c44242360c4426659bcf30a0d674df3 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs (.../PipingCalculationGroupContextTreeNodeInfoTest.cs) (revision c07c8243b6c74fa79a77f2edbc1799375064b057) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs (.../PipingCalculationGroupContextTreeNodeInfoTest.cs) (revision b8e09b3d2c44242360c4426659bcf30a0d674df3) @@ -747,8 +747,9 @@ var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, node, treeViewControl); gui.Expect(g => g.Get(node, treeViewControl)).Return(menuBuilder); - treeViewControl.Expect(tvc => tvc.CanRename(node)).Return(true); - treeViewControl.Expect(tvc => tvc.CanRemove(node)).Return(true); + treeViewControl.Expect(tvc => tvc.CanRenameNodeForData(nodeData)).Return(true); + treeViewControl.Expect(tvc => tvc.CanRemoveNodeForData(nodeData)).Return(true); + treeViewControl.Expect(tvc => tvc.CanExpandOrCollapseAllNodesForData(nodeData)).Repeat.Twice().Return(false); mocks.ReplayAll(); @@ -853,7 +854,7 @@ var node = new TreeNode { - Tag = group + Tag = nodeData }; nodeParent.Nodes.Add(node); @@ -865,7 +866,8 @@ var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, node, treeViewControl); gui.Expect(g => g.Get(node, treeViewControl)).Return(menuBuilder); - treeViewControl.Expect(tvc => tvc.CanRename(node)).Return(true); + treeViewControl.Expect(tvc => tvc.CanRenameNodeForData(nodeData)).Return(true); + treeViewControl.Expect(tvc => tvc.CanExpandOrCollapseAllNodesForData(nodeData)).Repeat.Twice().Return(false); mocks.ReplayAll(); @@ -976,6 +978,7 @@ var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, node, treeViewControl); gui.Expect(g => g.Get(node, treeViewControl)).Return(menuBuilder); + treeViewControl.Expect(tvc => tvc.CanExpandOrCollapseAllNodesForData(nodeData)).Repeat.Twice().Return(false); mocks.ReplayAll(); Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingFailureMechanismTreeNodeInfoTest.cs =================================================================== diff -u -rc07c8243b6c74fa79a77f2edbc1799375064b057 -rb8e09b3d2c44242360c4426659bcf30a0d674df3 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingFailureMechanismTreeNodeInfoTest.cs (.../PipingFailureMechanismTreeNodeInfoTest.cs) (revision c07c8243b6c74fa79a77f2edbc1799375064b057) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingFailureMechanismTreeNodeInfoTest.cs (.../PipingFailureMechanismTreeNodeInfoTest.cs) (revision b8e09b3d2c44242360c4426659bcf30a0d674df3) @@ -206,6 +206,7 @@ var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, node, treeViewControl); gui.Expect(cmp => cmp.Get(node, treeViewControl)).Return(menuBuilder); + treeViewControl.Expect(tvc => tvc.CanExpandOrCollapseAllNodesForData(failureMechanism)).Repeat.Twice().Return(false); mocks.ReplayAll();