Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -r43fb77c51a8d1c0af128a2da0c3d51bbea6e25bb -re7923e041dfeb751cc6fe3b795f914f13734b19d --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs (.../PipingCalculationGroupContextTreeNodeInfoTest.cs) (revision 43fb77c51a8d1c0af128a2da0c3d51bbea6e25bb) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs (.../PipingCalculationGroupContextTreeNodeInfoTest.cs) (revision e7923e041dfeb751cc6fe3b795f914f13734b19d) @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using Core.Common.Base; @@ -32,7 +33,7 @@ private PipingGuiPlugin plugin; private TreeNodeInfo info; - private const int contextMenuAddGenerateCalculationsIndex = 2; + private const int contextMenuAddGenerateCalculationsIndex = 1; private const int contextMenuAddCalculationGroupIndex = 0; private const int contextMenuAddCalculationIndex = 1; @@ -861,6 +862,122 @@ } [Test] + public void ContextMenuStrip_ClickOnGenerateCalculationsItemWithoutSurfaceLines_ShowEmptySurfaceLineSelectionView() + { + // Setup + var gui = mocks.StrictMock(); + var treeViewControl = mocks.StrictMock(); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + + var group = new PipingCalculationGroup(); + + var pipingFailureMechanismMock = mocks.StrictMock(); + var assessmentSectionMock = mocks.StrictMock(); + + var mainWindow = mocks.Stub(); + + var parentData = new PipingFailureMechanismContext(pipingFailureMechanismMock, assessmentSectionMock); + var nodeData = new PipingCalculationGroupContext(group, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanismMock, + assessmentSectionMock); + + gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Expect(g => g.MainWindow).Return(mainWindow); + + mocks.ReplayAll(); + + plugin.Gui = gui; + + PipingSurfaceLineSelectionDialog selectionDialog = null; + DataGridView grid = null; + DialogBoxHandler = (name, wnd) => + { + selectionDialog = new FormTester(name).TheObject as PipingSurfaceLineSelectionDialog; + grid = new ControlTester("SurfaceLineDataGrid", selectionDialog).TheObject as DataGridView; + + new ButtonTester("CancelButton", selectionDialog).Click(); + }; + + var contextMenu = info.ContextMenuStrip(nodeData, parentData, treeViewControl); + + // Call + contextMenu.Items[contextMenuAddGenerateCalculationsIndex].PerformClick(); + + // Assert + Assert.NotNull(selectionDialog); + Assert.NotNull(grid); + Assert.AreEqual(0, grid.RowCount); + + mocks.VerifyAll(); + } + + + [Test] + public void ContextMenuStrip_ClickOnGenerateCalculationsItemWithSurfaceLines_ShowSurfaceLineSelectionView() + { + // Setup + var gui = mocks.StrictMock(); + var treeViewControl = mocks.StrictMock(); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + + var group = new PipingCalculationGroup(); + + var pipingFailureMechanismMock = mocks.StrictMock(); + var assessmentSectionMock = mocks.StrictMock(); + + var mainWindow = mocks.Stub(); + + var parentData = new PipingFailureMechanismContext(pipingFailureMechanismMock, assessmentSectionMock); + var surfaceLines = new[] + { + new RingtoetsPipingSurfaceLine + { + Name= "surfaceLine1" + }, + new RingtoetsPipingSurfaceLine + { + Name= "surfaceLine2" + } + }; + var nodeData = new PipingCalculationGroupContext(group, + surfaceLines, + Enumerable.Empty(), + pipingFailureMechanismMock, + assessmentSectionMock); + + gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Expect(g => g.MainWindow).Return(mainWindow); + + mocks.ReplayAll(); + + plugin.Gui = gui; + + PipingSurfaceLineSelectionDialog selectionDialog = null; + DataGridView grid = null; + DialogBoxHandler = (name, wnd) => + { + selectionDialog = new FormTester(name).TheObject as PipingSurfaceLineSelectionDialog; + grid = new ControlTester("SurfaceLineDataGrid", selectionDialog).TheObject as DataGridView; + + new ButtonTester("CancelButton", selectionDialog).Click(); + }; + + var contextMenu = info.ContextMenuStrip(nodeData, parentData, treeViewControl); + + // Call + contextMenu.Items[contextMenuAddGenerateCalculationsIndex].PerformClick(); + + // Assert + Assert.NotNull(selectionDialog); + Assert.NotNull(grid); + Assert.AreEqual(2, grid.RowCount); + + mocks.VerifyAll(); + } + + [Test] public void CanRenameNode_ParentIsPipingFailureMechanismContext_ReturnFalse() { // Setup