Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsPlugin.cs =================================================================== diff -u -r494d3b3bc20925a8c6b118550837f39ad1f62a1e -r1141016ecbde1e84658f0a617eed864a547dd1ac --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsPlugin.cs (.../GrassCoverErosionInwardsPlugin.cs) (revision 494d3b3bc20925a8c6b118550837f39ad1f62a1e) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsPlugin.cs (.../GrassCoverErosionInwardsPlugin.cs) (revision 1141016ecbde1e84658f0a617eed864a547dd1ac) @@ -473,8 +473,15 @@ } builder.AddCreateCalculationGroupItem(group) - .AddCreateCalculationItem(context, AddCalculation) - .AddSeparator() + .AddCreateCalculationItem(context, AddCalculation); + + if (!isNestedGroup) + { + builder.AddSeparator() + .AddRemoveAllChildrenItem(group); + } + + builder.AddSeparator() .AddValidateAllCalculationsInGroupItem( context, c => ValidateAll(c.WrappedData.GetCalculations().OfType(), c.AssessmentSection), Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/TreeNodeInfos/GrassCoverErosionInwardsCalculationGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -r35baeb163866f62a72bccf6438ddc08b41407ecf -r1141016ecbde1e84658f0a617eed864a547dd1ac --- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/TreeNodeInfos/GrassCoverErosionInwardsCalculationGroupContextTreeNodeInfoTest.cs (.../GrassCoverErosionInwardsCalculationGroupContextTreeNodeInfoTest.cs) (revision 35baeb163866f62a72bccf6438ddc08b41407ecf) +++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/TreeNodeInfos/GrassCoverErosionInwardsCalculationGroupContextTreeNodeInfoTest.cs (.../GrassCoverErosionInwardsCalculationGroupContextTreeNodeInfoTest.cs) (revision 1141016ecbde1e84658f0a617eed864a547dd1ac) @@ -174,8 +174,10 @@ menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddExpandAllItem()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddCollapseAllItem()).Return(menuBuilderMock); @@ -218,7 +220,7 @@ ContextMenuStrip menu = info.ContextMenuStrip(groupContext, null, treeViewControl); // Assert - Assert.AreEqual(10, menu.Items.Count); + Assert.AreEqual(12, menu.Items.Count); TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddCalculationGroupIndexRootGroup, RingtoetsFormsResources.CalculationGroup_Add_CalculationGroup, RingtoetsFormsResources.CalculationGroup_Add_CalculationGroup_Tooltip, @@ -227,6 +229,11 @@ RingtoetsFormsResources.CalculationGroup_Add_Calculation, RingtoetsFormsResources.CalculationGroup_Add_Calculation_Tooltip, RingtoetsFormsResources.FailureMechanismIcon); + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuRemoveAllChildrenRootGroupIndex, + RingtoetsFormsResources.CalculationGroup_RemoveAllChildrenFromGroup_Remove_all, + RingtoetsFormsResources.CalculationGroup_RemoveAllChildrenFromGroup_No_Calculation_or_Group_to_remove, + RingtoetsFormsResources.RemoveAllIcon, + false); TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuValidateAllIndexRootGroup, RingtoetsFormsResources.Validate_all, RingtoetsFormsResources.ValidateAll_No_calculations_to_validate, @@ -858,7 +865,52 @@ "An item with the same name default name already exists, therefore '(1)' needs to be appended."); } } + + [Test] + public void ContextMenuStrip_ClickOnRemoveAllInGroup_RemovesAllChildren() + { + // Setup + using (var treeViewControl = new TreeViewControl()) + { + var group = new CalculationGroup + { + Children = + { + mocks.Stub() + } + }; + var failureMechanism = new GrassCoverErosionInwardsFailureMechanism(); + var assessmentSectionMock = mocks.StrictMock(); + var nodeData = new GrassCoverErosionInwardsCalculationGroupContext(group, + failureMechanism, + assessmentSectionMock); + + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); + + mocks.ReplayAll(); + + plugin.Gui = gui; + + DialogBoxHandler = (name, wnd) => + { + var dialog = new MessageBoxTester(wnd); + dialog.ClickOk(); + }; + + var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); + + // Call + contextMenu.Items[contextMenuRemoveAllChildrenRootGroupIndex].PerformClick(); + + // Assert + Assert.IsEmpty(group.Children); + } + } + [Test] public void GivenCalculationsViewGenerateScenariosButtonClicked_WhenDikeProfileSelectedAndDialogClosed_ThenCalculationsAddedWithProfileAssigned() { @@ -1126,9 +1178,10 @@ private const int contextMenuGenerateCalculationsIndexRootGroup = 0; private const int contextMenuAddCalculationGroupIndexRootGroup = 2; private const int contextMenuAddCalculationIndexRootGroup = 3; - private const int contextMenuValidateAllIndexRootGroup = 5; - private const int contextMenuCalculateAllIndexRootGroup = 6; - private const int contextMenuClearAllIndexRootGroup = 7; + private const int contextMenuRemoveAllChildrenRootGroupIndex = 5; + private const int contextMenuValidateAllIndexRootGroup = 7; + private const int contextMenuCalculateAllIndexRootGroup = 8; + private const int contextMenuClearAllIndexRootGroup = 9; private const int contextMenuAddCalculationGroupIndexNestedGroup = 0; private const int contextMenuAddCalculationIndexNestedGroup = 1; Index: Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Plugin/HeightStructuresPlugin.cs =================================================================== diff -u -r494d3b3bc20925a8c6b118550837f39ad1f62a1e -r1141016ecbde1e84658f0a617eed864a547dd1ac --- Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Plugin/HeightStructuresPlugin.cs (.../HeightStructuresPlugin.cs) (revision 494d3b3bc20925a8c6b118550837f39ad1f62a1e) +++ Ringtoets/HeightStructures/src/Ringtoets.HeightStructures.Plugin/HeightStructuresPlugin.cs (.../HeightStructuresPlugin.cs) (revision 1141016ecbde1e84658f0a617eed864a547dd1ac) @@ -323,8 +323,15 @@ var isNestedGroup = parentData is HeightStructuresCalculationGroupContext; builder.AddCreateCalculationGroupItem(group) - .AddCreateCalculationItem(context, AddCalculation) - .AddSeparator() + .AddCreateCalculationItem(context, AddCalculation); + + if (!isNestedGroup) + { + builder.AddSeparator() + .AddRemoveAllChildrenItem(group); + } + + builder.AddSeparator() .AddValidateAllCalculationsInGroupItem( context, c => ValidateAll(c.WrappedData.GetCalculations().OfType(), c.AssessmentSection), Index: Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Forms.Test/TreeNodeInfos/HeightStructuresCalculationGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -r35baeb163866f62a72bccf6438ddc08b41407ecf -r1141016ecbde1e84658f0a617eed864a547dd1ac --- Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Forms.Test/TreeNodeInfos/HeightStructuresCalculationGroupContextTreeNodeInfoTest.cs (.../HeightStructuresCalculationGroupContextTreeNodeInfoTest.cs) (revision 35baeb163866f62a72bccf6438ddc08b41407ecf) +++ Ringtoets/HeightStructures/test/Ringtoets.HeightStructures.Forms.Test/TreeNodeInfos/HeightStructuresCalculationGroupContextTreeNodeInfoTest.cs (.../HeightStructuresCalculationGroupContextTreeNodeInfoTest.cs) (revision 1141016ecbde1e84658f0a617eed864a547dd1ac) @@ -167,8 +167,10 @@ menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddExpandAllItem()).Return(menuBuilderMock); menuBuilderMock.Expect(mb => mb.AddCollapseAllItem()).Return(menuBuilderMock); @@ -211,7 +213,7 @@ ContextMenuStrip menu = info.ContextMenuStrip(groupContext, null, treeViewControl); // Assert - Assert.AreEqual(8, menu.Items.Count); + Assert.AreEqual(10, menu.Items.Count); TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddCalculationGroupIndexRootGroup, RingtoetsFormsResources.CalculationGroup_Add_CalculationGroup, @@ -221,6 +223,11 @@ RingtoetsFormsResources.CalculationGroup_Add_Calculation, RingtoetsFormsResources.CalculationGroup_Add_Calculation_Tooltip, RingtoetsFormsResources.FailureMechanismIcon); + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuRemoveAllChildrenRootGroupIndex, + RingtoetsFormsResources.CalculationGroup_RemoveAllChildrenFromGroup_Remove_all, + RingtoetsFormsResources.CalculationGroup_RemoveAllChildrenFromGroup_No_Calculation_or_Group_to_remove, + RingtoetsFormsResources.RemoveAllIcon, + false); TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuValidateAllIndexRootGroup, RingtoetsFormsResources.Validate_all, @@ -951,6 +958,52 @@ } [Test] + public void ContextMenuStrip_ClickOnRemoveAllInGroup_RemovesAllChildren() + { + // Setup + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + var group = new CalculationGroup(); + var failureMechanism = new HeightStructuresFailureMechanism(); + var assessmentSectionMock = mocks.StrictMock(); + var nodeData = new HeightStructuresCalculationGroupContext(group, + failureMechanism, + assessmentSectionMock); + var calculation = new HeightStructuresCalculation + { + Name = "Nieuwe berekening" + }; + var observerMock = mocks.StrictMock(); + observerMock.Expect(o => o.UpdateObserver()); + + using (var treeViewControl = new TreeViewControl()) + { + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); + + mocks.ReplayAll(); + + group.Children.Add(calculation); + nodeData.Attach(observerMock); + + plugin.Gui = gui; + + DialogBoxHandler = (name, wnd) => + { + var dialog = new MessageBoxTester(wnd); + dialog.ClickOk(); + }; + + var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); + + // Call + contextMenu.Items[contextMenuRemoveAllChildrenRootGroupIndex].PerformClick(); + + // Assert + Assert.IsEmpty(group.Children); + } + } + + [Test] public void OnNodeRemoved_NestedCalculationGroup_RemoveGroupAndNotifyObservers() { // Setup @@ -1028,9 +1081,10 @@ private const int contextMenuAddCalculationGroupIndexRootGroup = 0; private const int contextMenuAddCalculationIndexRootGroup = 1; - private const int contextMenuValidateAllIndexRootGroup = 3; - private const int contextMenuCalculateAllIndexRootGroup = 4; - private const int contextMenuClearAllIndexRootGroup = 5; + private const int contextMenuRemoveAllChildrenRootGroupIndex = 3; + private const int contextMenuValidateAllIndexRootGroup = 5; + private const int contextMenuCalculateAllIndexRootGroup = 6; + private const int contextMenuClearAllIndexRootGroup = 7; private const int contextMenuAddCalculationGroupIndexNestedGroup = 0; private const int contextMenuAddCalculationIndexNestedGroup = 1; Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -rac2a8327f9ce8b42d2e2740a0cda030385c5c63c -r1141016ecbde1e84658f0a617eed864a547dd1ac --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs (.../PipingCalculationGroupContextTreeNodeInfoTest.cs) (revision ac2a8327f9ce8b42d2e2740a0cda030385c5c63c) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs (.../PipingCalculationGroupContextTreeNodeInfoTest.cs) (revision 1141016ecbde1e84658f0a617eed864a547dd1ac) @@ -66,14 +66,6 @@ info = plugin.GetTreeNodeInfos().First(tni => tni.TagType == typeof(PipingCalculationGroupContext)); } - public override void TearDown() - { - plugin.Dispose(); - mocks.VerifyAll(); - - base.TearDown(); - } - [Test] public void Initialized_Always_ExpectedPropertiesSet() { @@ -210,24 +202,24 @@ // Assert Assert.AreEqual(14, menu.Items.Count); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddCalculationGroupIndex, + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddCalculationGroupIndexNestedGroup, RingtoetsCommonFormsResources.CalculationGroup_Add_CalculationGroup, "Voeg een nieuwe berekeningsmap toe aan deze berekeningsmap.", RingtoetsCommonFormsResources.AddFolderIcon); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddCalculationIndex, + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddCalculationIndexNestedGroup, RingtoetsCommonFormsResources.CalculationGroup_Add_Calculation, "Voeg een nieuwe berekening toe aan deze berekeningsmap.", PipingFormsResources.PipingIcon); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuValidateAllIndex, + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuValidateAllIndexNestedGroup, RingtoetsCommonFormsResources.Validate_all, "Valideer alle berekeningen binnen deze berekeningsmap.", RingtoetsCommonFormsResources.ValidateAllIcon); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuCalculateAllIndex, + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuCalculateAllIndexNestedGroup, RingtoetsCommonFormsResources.Calculate_all, "Voer alle berekeningen binnen deze berekeningsmap uit.", RingtoetsCommonFormsResources.CalculateAllIcon); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuClearOutputIndex, + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuClearOutputNestedGroupIndex, "&Wis alle uitvoer...", "Wis de uitvoer van alle berekeningen binnen deze berekeningsmap.", RingtoetsCommonFormsResources.ClearIcon); @@ -316,45 +308,45 @@ // Assert Assert.AreEqual(17, menu.Items.Count); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddCalculationGroupIndex + 4, + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddCalculationGroupIndexRootGroup, RingtoetsCommonFormsResources.CalculationGroup_Add_CalculationGroup, "Voeg een nieuwe berekeningsmap toe aan deze berekeningsmap.", RingtoetsCommonFormsResources.AddFolderIcon); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddCalculationIndex + 4, + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddCalculationIndexRootGroup, RingtoetsCommonFormsResources.CalculationGroup_Add_Calculation, "Voeg een nieuwe berekening toe aan deze berekeningsmap.", PipingFormsResources.PipingIcon); - TestHelper.AssertContextMenuStripContainsItem(menu, 7, + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuRemoveAllChildrenIndexRootGroup, RingtoetsCommonFormsResources.CalculationGroup_RemoveAllChildrenFromGroup_Remove_all, RingtoetsCommonFormsResources.CalculationGroup_RemoveAllChildrenFromGroup_Remove_all_Tooltip, RingtoetsCommonFormsResources.RemoveAllIcon); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuValidateAllIndex + 6, + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuValidateAllIndexRootGroup, RingtoetsCommonFormsResources.Validate_all, "Valideer alle berekeningen binnen deze berekeningsmap.", RingtoetsCommonFormsResources.ValidateAllIcon); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuCalculateAllIndex + 6, + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuCalculateAllIndexRootGroup, RingtoetsCommonFormsResources.Calculate_all, "Voer alle berekeningen binnen deze berekeningsmap uit.", RingtoetsCommonFormsResources.CalculateAllIcon); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuClearOutputIndex + 6, + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuClearOutputIndexRootGorup, "&Wis alle uitvoer...", "Wis de uitvoer van alle berekeningen binnen deze berekeningsmap.", RingtoetsCommonFormsResources.ClearIcon); - TestHelper.AssertContextMenuStripContainsItem(menu, 13, + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuExpandAllIndexRootGorup, CoreCommonGuiResources.Expand_all, CoreCommonGuiResources.Expand_all_ToolTip, CoreCommonGuiResources.ExpandAllIcon, false); - TestHelper.AssertContextMenuStripContainsItem(menu, 14, + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuCollapseAllIndexRootGorup, CoreCommonGuiResources.Collapse_all, CoreCommonGuiResources.Collapse_all_ToolTip, CoreCommonGuiResources.CollapseAllIcon, false); - TestHelper.AssertContextMenuStripContainsItem(menu, 16, + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuPropertiesIndexRootGorup, CoreCommonGuiResources.Properties, CoreCommonGuiResources.Properties_ToolTip, CoreCommonGuiResources.PropertiesHS, @@ -531,8 +523,8 @@ ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl); // Assert - ToolStripItem validateItem = contextMenu.Items[contextMenuValidateAllIndex]; - ToolStripItem calculateItem = contextMenu.Items[contextMenuCalculateAllIndex]; + ToolStripItem validateItem = contextMenu.Items[contextMenuValidateAllIndexNestedGroup]; + ToolStripItem calculateItem = contextMenu.Items[contextMenuCalculateAllIndexNestedGroup]; Assert.IsFalse(validateItem.Enabled); Assert.IsFalse(calculateItem.Enabled); Assert.AreEqual(RingtoetsCommonFormsResources.FailureMechanism_CreateCalculateAllItem_No_calculations_to_run, calculateItem.ToolTipText); @@ -569,7 +561,7 @@ ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); // Assert - ToolStripItem removeAllItemDisabled = contextMenu.Items[contextMenuRemoveAllInGroupIndex]; + ToolStripItem removeAllItemDisabled = contextMenu.Items[customOnlyContextMenuRemoveAllChildrenIndex]; Assert.IsFalse(removeAllItemDisabled.Enabled); Assert.AreEqual(RingtoetsCommonFormsResources.CalculationGroup_RemoveAllChildrenFromGroup_No_Calculation_or_Group_to_remove, removeAllItemDisabled.ToolTipText); } @@ -610,7 +602,7 @@ ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); // Assert - ToolStripItem removeAllItemEnabled = contextMenu.Items[contextMenuRemoveAllInGroupIndex]; + ToolStripItem removeAllItemEnabled = contextMenu.Items[customOnlyContextMenuRemoveAllChildrenIndex]; Assert.IsTrue(removeAllItemEnabled.Enabled); Assert.AreEqual(RingtoetsCommonFormsResources.CalculationGroup_RemoveAllChildrenFromGroup_Remove_all_Tooltip, removeAllItemEnabled.ToolTipText); } @@ -662,7 +654,7 @@ Assert.AreEqual(1, group.Children.Count); // Call - contextMenu.Items[contextMenuAddCalculationGroupIndex].PerformClick(); + contextMenu.Items[contextMenuAddCalculationGroupIndexNestedGroup].PerformClick(); // Assert Assert.AreEqual(2, group.Children.Count); @@ -719,7 +711,7 @@ Assert.AreEqual(1, group.Children.Count); // Call - contextMenu.Items[contextMenuAddCalculationIndex].PerformClick(); + contextMenu.Items[contextMenuAddCalculationIndexNestedGroup].PerformClick(); // Assert Assert.AreEqual(2, group.Children.Count); @@ -778,7 +770,7 @@ var contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl); // Call - Action call = () => contextMenu.Items[contextMenuValidateAllIndex].PerformClick(); + Action call = () => contextMenu.Items[contextMenuValidateAllIndexNestedGroup].PerformClick(); // Assert TestHelper.AssertLogMessages(call, messages => @@ -859,7 +851,7 @@ }; // Call - contextMenu.Items[contextMenuCalculateAllIndex].PerformClick(); + contextMenu.Items[contextMenuCalculateAllIndexNestedGroup].PerformClick(); } // Assert } @@ -943,7 +935,7 @@ var contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl); // Call - contextMenu.Items[contextMenuClearOutputIndex].PerformClick(); + contextMenu.Items[contextMenuClearOutputNestedGroupIndex].PerformClick(); // Assert Assert.AreNotEqual(confirm, calculation1.HasOutput); @@ -1009,7 +1001,7 @@ var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); // Call - contextMenu.Items[contextMenuAddGenerateCalculationsIndex].PerformClick(); + contextMenu.Items[contextMenuAddGenerateCalculationsIndexNestedGroup].PerformClick(); // Assert Assert.NotNull(selectionDialog); @@ -1019,7 +1011,7 @@ } [Test] - public void ContextMenuStrip_ClickOnRemoveAllInGroup_ShowSurfaceLineSelectionView() + public void ContextMenuStrip_ClickOnRemoveAllInGroup_RemovesAllChildren() { // Setup using (var treeViewControl = new TreeViewControl()) @@ -1058,7 +1050,7 @@ var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); // Call - contextMenu.Items[contextMenuRemoveAllInGroupIndex].PerformClick(); + contextMenu.Items[customOnlyContextMenuRemoveAllChildrenIndex].PerformClick(); // Assert Assert.IsEmpty(group.Children); @@ -1156,7 +1148,7 @@ var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); // When - contextMenu.Items[contextMenuAddGenerateCalculationsIndex].PerformClick(); + contextMenu.Items[contextMenuAddGenerateCalculationsIndexNestedGroup].PerformClick(); // Then var failureMechanismSectionResult1 = pipingFailureMechanism.SectionResults.First(); @@ -1273,7 +1265,7 @@ var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); // When - contextMenu.Items[contextMenuAddGenerateCalculationsIndex].PerformClick(); + contextMenu.Items[contextMenuAddGenerateCalculationsIndexNestedGroup].PerformClick(); // Then foreach (var failureMechanismSectionResult in pipingFailureMechanism.SectionResults) @@ -1370,14 +1362,33 @@ CollectionAssert.DoesNotContain(sectionResults[0].GetCalculationScenarios(pipingFailureMechanism.Calculations.OfType()), calculation); } - private const int contextMenuAddGenerateCalculationsIndex = 1; - private const int contextMenuRemoveAllInGroupIndex = 6; - private const int contextMenuAddCalculationGroupIndex = 0; - private const int contextMenuAddCalculationIndex = 1; - private const int contextMenuValidateAllIndex = 3; - private const int contextMenuCalculateAllIndex = 4; - private const int contextMenuClearOutputIndex = 5; + public override void TearDown() + { + plugin.Dispose(); + mocks.VerifyAll(); + base.TearDown(); + } + + private const int contextMenuAddCalculationGroupIndexRootGroup = 4; + private const int contextMenuAddCalculationIndexRootGroup = 5; + private const int contextMenuRemoveAllChildrenIndexRootGroup = 7; + private const int contextMenuValidateAllIndexRootGroup = 9; + private const int contextMenuCalculateAllIndexRootGroup = 10; + private const int contextMenuClearOutputIndexRootGorup = 11; + private const int contextMenuExpandAllIndexRootGorup = 13; + private const int contextMenuCollapseAllIndexRootGorup = 14; + private const int contextMenuPropertiesIndexRootGorup = 16; + + private const int contextMenuAddGenerateCalculationsIndexNestedGroup = 1; + private const int contextMenuAddCalculationGroupIndexNestedGroup = 0; + private const int contextMenuAddCalculationIndexNestedGroup = 1; + private const int contextMenuValidateAllIndexNestedGroup = 3; + private const int contextMenuCalculateAllIndexNestedGroup = 4; + private const int contextMenuClearOutputNestedGroupIndex = 5; + + private const int customOnlyContextMenuRemoveAllChildrenIndex = 6; + /// /// Creates a new instance of with sections and a surface line. ///