Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/NodePresenters/PipingFailureMechanismNodePresenterTest.cs =================================================================== diff -u -r6aa508233ca39077a4a10ec8275619d61ddab47b -r2e162fe8f639b0c637a5cbfe1c2f1a9236741072 --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/NodePresenters/PipingFailureMechanismNodePresenterTest.cs (.../PipingFailureMechanismNodePresenterTest.cs) (revision 6aa508233ca39077a4a10ec8275619d61ddab47b) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/NodePresenters/PipingFailureMechanismNodePresenterTest.cs (.../PipingFailureMechanismNodePresenterTest.cs) (revision 2e162fe8f639b0c637a5cbfe1c2f1a9236741072) @@ -7,7 +7,6 @@ using Core.Common.Controls; using Core.Common.Gui; using Core.Common.Gui.ContextMenu; -using Core.Common.Gui.TestUtils; using Core.Common.Gui.TestUtils.ContextMenu; using Core.Common.TestUtils; using Core.Common.Utils.Collections; @@ -31,10 +30,10 @@ { private MockRepository mockRepository; - private const int contextMenuAddCalculationIndex = 0; - private const int contextMenuAddFolderIndex = 1; - private const int contextMenuCalculateAllIndex = 2; - private const int contextMenuClearIndex = 3; + private const int contextMenuAddFolderIndex = 0; + private const int contextMenuAddCalculationIndex = 1; + private const int contextMenuCalculateAllIndex = 4; + private const int contextMenuClearIndex = 5; [SetUp] public void SetUp() @@ -423,44 +422,58 @@ } [Test] - public void GetContextMenu_Always_AddFourCustomItems() + public void GetContextMenu_HasCalculationWithOutput_ReturnsContextMenuWithCommonItems() { // Setup - var contextMenuBuilderProviderMock = mockRepository.StrictMock(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + var failureMechanism = new PipingFailureMechanism(); + failureMechanism.CalculationsGroup.GetPipingCalculations().First().Output = new TestPipingOutput(); + var nodeMock = mockRepository.Stub(); - var failureMechanism = mockRepository.StrictMock(); + nodeMock.Tag = failureMechanism; - contextMenuBuilderProviderMock.Expect(cmp => cmp.Get(nodeMock)).Return(menuBuilder); + var commandHandler = mockRepository.Stub(); mockRepository.ReplayAll(); - nodeMock.Tag = failureMechanism; + var contextMenuBuilder = new ContextMenuBuilder(commandHandler, nodeMock); + var contextMenuBuilderProviderMock = new SimpleContextMenuBuilderProvder(contextMenuBuilder); var nodePresenter = new PipingFailureMechanismNodePresenter(contextMenuBuilderProviderMock); // Call ContextMenuStrip menu = nodePresenter.GetContextMenu(nodeMock, failureMechanism); // Assert - Assert.AreEqual(4, menu.Items.Count); + Assert.AreEqual(12, menu.Items.Count); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddCalculationIndex, PipingFormsResources.PipingFailureMechanism_Add_PipingCalculation, PipingFormsResources.PipingFailureMechanism_Add_PipingCalculation_Tooltip, PipingFormsResources.PipingIcon); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddFolderIndex, PipingFormsResources.PipingFailureMechanism_Add_PipingCalculationGroup, PipingFormsResources.PipingFailureMechanism_Add_PipingCalculationGroup_Tooltip, PipingFormsResources.AddFolderIcon); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuCalculateAllIndex, RingtoetsFormsResources.Calculate_all, PipingFormsResources.PipingFailureMechanism_Calculate_Tooltip, RingtoetsFormsResources.CalculateAllIcon); + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddFolderIndex, PipingFormsResources.PipingCalculationGroup_Add_PipingCalculationGroup, PipingFormsResources.PipingFailureMechanism_Add_PipingCalculationGroup_Tooltip, PipingFormsResources.AddFolderIcon); + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddCalculationIndex, PipingFormsResources.PipingCalculationGroup_Add_PipingCalculation, PipingFormsResources.PipingFailureMechanism_Add_PipingCalculation_Tooltip, PipingFormsResources.PipingIcon); + TestHelper.AssertContextMenuStripContainsItem(menu, 3, PipingFormsResources.PipingCalculationItem_Validate, PipingFormsResources.PipingFailureMechanism_ValidateAll_Tooltip, PipingFormsResources.ValidationIcon); + TestHelper.AssertContextMenuStripContainsItem(menu, 4, RingtoetsFormsResources.Calculate_all, RingtoetsFormsResources.Calculate_all_ToolTip, RingtoetsFormsResources.CalculateAllIcon); + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuClearIndex, RingtoetsFormsResources.Clear_all_output, RingtoetsFormsResources.Clear_all_output_ToolTip, RingtoetsFormsResources.ClearIcon); + + TestHelper.AssertContextMenuStripContainsItem(menu, 7, CoreCommonGuiResources.Expand_all, CoreCommonGuiResources.Expand_all_ToolTip, CoreCommonGuiResources.ExpandAllIcon, false); + TestHelper.AssertContextMenuStripContainsItem(menu, 8, CoreCommonGuiResources.Collapse_all, CoreCommonGuiResources.Collapse_all_ToolTip, CoreCommonGuiResources.CollapseAllIcon, false); + + TestHelper.AssertContextMenuStripContainsItem(menu, 10, CoreCommonGuiResources.Import, CoreCommonGuiResources.Import_ToolTip, CoreCommonGuiResources.ImportIcon, false); + TestHelper.AssertContextMenuStripContainsItem(menu, 11, CoreCommonGuiResources.Export, CoreCommonGuiResources.Export_ToolTip, CoreCommonGuiResources.ExportIcon, false); + + CollectionAssert.AllItemsAreInstancesOfType(new[] { menu.Items[2], menu.Items[6], menu.Items[9] }, typeof(ToolStripSeparator)); + mockRepository.VerifyAll(); } [Test] public void GetContextMenu_PipingFailureMechanismNoOutput_ClearAllOutputDisabled() { // Setup - var contextMenuBuilderProviderMock = mockRepository.StrictMock(); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + var nodeMock = mockRepository.StrictMock(); var dataMock = mockRepository.StrictMock(); + var contextMenuBuilderProviderMock = mockRepository.StrictMock(); contextMenuBuilderProviderMock.Expect(cmp => cmp.Get(nodeMock)).Return(menuBuilder); mockRepository.ReplayAll(); @@ -471,8 +484,6 @@ ContextMenuStrip contextMenu = nodePresenter.GetContextMenu(nodeMock, dataMock); // Assert - Assert.AreEqual(4, contextMenu.Items.Count); - ToolStripItem clearOutputItem = contextMenu.Items[contextMenuClearIndex]; Assert.IsFalse(clearOutputItem.Enabled); Assert.AreEqual("Er zijn geen berekeningen met uitvoer om te wissen.", clearOutputItem.ToolTipText); @@ -484,18 +495,18 @@ public void GetContextMenu_PipingFailureMechanismWithOutput_ClearAllOutputEnabled() { // Setup - var contextMenuBuilderProviderMock = mockRepository.StrictMock(); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + var nodeMock = mockRepository.StrictMock(); var dataMock = mockRepository.StrictMock(); - - contextMenuBuilderProviderMock.Expect(cmp => cmp.Get(nodeMock)).Return(menuBuilder); - dataMock.CalculationsGroup.Children.Add(new PipingCalculation { Output = new TestPipingOutput() }); + var contextMenuBuilderProviderMock = mockRepository.StrictMock(); + contextMenuBuilderProviderMock.Expect(cmp => cmp.Get(nodeMock)).Return(menuBuilder); + mockRepository.ReplayAll(); var nodePresenter = new PipingFailureMechanismNodePresenter(contextMenuBuilderProviderMock); @@ -504,8 +515,6 @@ ContextMenuStrip contextMenu = nodePresenter.GetContextMenu(nodeMock, dataMock); // Assert - Assert.AreEqual(4, contextMenu.Items.Count); - ToolStripItem clearOutputItem = contextMenu.Items[contextMenuClearIndex]; Assert.IsTrue(clearOutputItem.Enabled); Assert.AreEqual(RingtoetsFormsResources.Clear_all_output_ToolTip, clearOutputItem.ToolTipText); @@ -526,6 +535,7 @@ 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);