Index: Core/Common/test/Core.Common.TestUtils/TestHelper.cs =================================================================== diff -u -r71fa16075699948cabba65c56d646e0268fd2b89 -r7048e49c8495475c25ceb9deb35edd8a2addafca --- Core/Common/test/Core.Common.TestUtils/TestHelper.cs (.../TestHelper.cs) (revision 71fa16075699948cabba65c56d646e0268fd2b89) +++ Core/Common/test/Core.Common.TestUtils/TestHelper.cs (.../TestHelper.cs) (revision 7048e49c8495475c25ceb9deb35edd8a2addafca) @@ -8,6 +8,7 @@ using System.IO; using System.Linq; using System.Reflection; +using System.Windows.Forms; using Core.Common.Utils.IO; using log4net.Appender; using log4net.Config; @@ -297,6 +298,30 @@ CollectionAssert.AreEqual(expectedImageBytes, actualImageBytes); } + /// + /// Asserts that a contains an item at the given + /// with the correct properties. + /// + /// The containing an item at position . + /// The position of the menu item in . + /// The text expected for the menu item. + /// The tooltip expected for the menu item. + /// The image expected for the menu item. + /// When does not contain a menu item at + /// position with the right , or . + /// + public static void AssertContextMenuStripContainsItem(ContextMenuStrip menu, int position, string text, string toolTip, Image icon) + { + Assert.IsNotNull(menu); + Assert.IsNotNull(menu.Items[position]); + + var item = menu.Items[position]; + + Assert.AreEqual(text, item.Text); + Assert.AreEqual(toolTip, item.ToolTipText); + AssertImagesAreEqual(icon, item.Image); + } + private static string GetCurrentTestClassMethodName() { var stackTrace = new StackTrace(false); Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/NodePresenters/FailureMechanismNodePresenterTest.cs =================================================================== diff -u -rc656b8194b62c2a03b3d103f82e1180939506aca -r7048e49c8495475c25ceb9deb35edd8a2addafca --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/NodePresenters/FailureMechanismNodePresenterTest.cs (.../FailureMechanismNodePresenterTest.cs) (revision c656b8194b62c2a03b3d103f82e1180939506aca) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/NodePresenters/FailureMechanismNodePresenterTest.cs (.../FailureMechanismNodePresenterTest.cs) (revision 7048e49c8495475c25ceb9deb35edd8a2addafca) @@ -1,6 +1,6 @@ using System.Drawing; using System.Linq; - +using System.Windows.Forms; using Core.Common.Controls; using Core.Common.TestUtils; @@ -14,6 +14,7 @@ using Ringtoets.Integration.Forms.NodePresenters; using RingtoetsFormsResources = Ringtoets.Integration.Forms.Properties.Resources; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; namespace Ringtoets.Integration.Forms.Test.NodePresenters { @@ -119,5 +120,31 @@ Assert.AreEqual(TreeFolderCategory.Output, outputFolder.Category); Assert.AreEqual(new[]{failureMechanism.AssessmentResult}, outputFolder.Contents); } + + [Test] + public void GetContextMenu_Always_ReturnsContextMenuWithItems() + { + // Setup + var mocks = new MockRepository(); + var nodeMock = mocks.StrictMock(); + + var nodePresenter = new FailureMechanismNodePresenter(); + var failureMechanism = new FailureMechanismPlaceholder("test"); + + // Call + var menu = nodePresenter.GetContextMenu(nodeMock, failureMechanism); + + // Assert + Assert.AreEqual(9, menu.Items.Count); + + TestHelper.AssertContextMenuStripContainsItem(menu, 0, RingtoetsCommonFormsResources.Calculate_all, RingtoetsCommonFormsResources.Calculate_all_ToolTip, RingtoetsCommonFormsResources.CalculateAllIcon); + TestHelper.AssertContextMenuStripContainsItem(menu, 1, RingtoetsCommonFormsResources.Clear_all_output, RingtoetsCommonFormsResources.Clear_all_output_ToolTip, RingtoetsCommonFormsResources.ClearIcon); + TestHelper.AssertContextMenuStripContainsItem(menu, 3, RingtoetsCommonFormsResources.FailureMechanism_Expand_all, RingtoetsCommonFormsResources.FailureMechanism_Expand_all_ToolTip, RingtoetsCommonFormsResources.ExpandAllIcon); + TestHelper.AssertContextMenuStripContainsItem(menu, 4, RingtoetsCommonFormsResources.FailureMechanism_Collapse_all, RingtoetsCommonFormsResources.FailureMechanism_Collapse_all_ToolTip, RingtoetsCommonFormsResources.CollapseAllIcon); + TestHelper.AssertContextMenuStripContainsItem(menu, 6, RingtoetsCommonFormsResources.FailureMechanism_Export, RingtoetsCommonFormsResources.FailureMechanism_Export_ToolTip, RingtoetsCommonFormsResources.ExportIcon); + TestHelper.AssertContextMenuStripContainsItem(menu, 8, RingtoetsCommonFormsResources.FailureMechanism_Properties, RingtoetsCommonFormsResources.FailureMechanism_Properties_ToolTip, RingtoetsCommonFormsResources.PropertiesIcon); + + CollectionAssert.AllItemsAreInstancesOfType(new []{menu.Items[2], menu.Items[5],menu.Items[7]}, typeof(ToolStripSeparator)); + } } } \ No newline at end of file Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/NodePresenters/PlaceholderWithReadonlyNameNodePresenterTest.cs =================================================================== diff -u -rc0e407c65daebe4f446f9414367593eff80af1b2 -r7048e49c8495475c25ceb9deb35edd8a2addafca --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/NodePresenters/PlaceholderWithReadonlyNameNodePresenterTest.cs (.../PlaceholderWithReadonlyNameNodePresenterTest.cs) (revision c0e407c65daebe4f446f9414367593eff80af1b2) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/NodePresenters/PlaceholderWithReadonlyNameNodePresenterTest.cs (.../PlaceholderWithReadonlyNameNodePresenterTest.cs) (revision 7048e49c8495475c25ceb9deb35edd8a2addafca) @@ -1,6 +1,6 @@ using System.Collections; using System.Drawing; - +using System.Windows.Forms; using Core.Common.Controls; using Core.Common.TestUtils; @@ -13,6 +13,7 @@ using Ringtoets.Integration.Forms.NodePresenters; using RingtoetsFormsResources = Ringtoets.Integration.Forms.Properties.Resources; +using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; namespace Ringtoets.Integration.Forms.Test.NodePresenters { @@ -149,5 +150,71 @@ // Assert CollectionAssert.IsEmpty(children); } + + [Test] + public void GetContextMenu_PlaceholderWithReadonlyName_ReturnsContextMenuWithItems() + { + // Setup + var mocks = new MockRepository(); + var nodeMock = mocks.StrictMock(); + + var nodePresenter = new PlaceholderWithReadonlyNameNodePresenter(); + var placeholderData = new PlaceholderWithReadonlyName("test"); + + // Call + var menu = nodePresenter.GetContextMenu(nodeMock, placeholderData); + + // Assert + Assert.AreEqual(0, menu.Items.Count); + } + + [Test] + public void GetContextMenu_InputPlaceHolder_ReturnsContextMenuWithItems() + { + // Setup + var mocks = new MockRepository(); + var nodeMock = mocks.StrictMock(); + + var nodePresenter = new PlaceholderWithReadonlyNameNodePresenter(); + var placeholderData = new InputPlaceholder("test"); + + // Call + var menu = nodePresenter.GetContextMenu(nodeMock, placeholderData); + + // Assert + Assert.AreEqual(8, menu.Items.Count); + + TestHelper.AssertContextMenuStripContainsItem(menu, 0, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Open, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Open_ToolTip, RingtoetsCommonFormsResources.OpenIcon); + TestHelper.AssertContextMenuStripContainsItem(menu, 2, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Erase, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Erase_ToolTip, RingtoetsCommonFormsResources.ClearIcon); + TestHelper.AssertContextMenuStripContainsItem(menu, 4, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Import, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Import_ToolTip, RingtoetsCommonFormsResources.ImportIcon); + TestHelper.AssertContextMenuStripContainsItem(menu, 5, RingtoetsCommonFormsResources.FailureMechanism_Export, RingtoetsCommonFormsResources.FailureMechanism_Export_ToolTip, RingtoetsCommonFormsResources.ExportIcon); + TestHelper.AssertContextMenuStripContainsItem(menu, 7, RingtoetsCommonFormsResources.FailureMechanism_Properties, RingtoetsCommonFormsResources.FailureMechanism_Properties_ToolTip, RingtoetsCommonFormsResources.PropertiesIcon); + + CollectionAssert.AllItemsAreInstancesOfType(new[] { menu.Items[1], menu.Items[3], menu.Items[6] }, typeof(ToolStripSeparator)); + } + + [Test] + public void GetContextMenu_OutputPlaceHolder_ReturnsContextMenuWithItems() + { + // Setup + var mocks = new MockRepository(); + var nodeMock = mocks.StrictMock(); + + var nodePresenter = new PlaceholderWithReadonlyNameNodePresenter(); + var placeholderData = new OutputPlaceholder("test"); + + // Call + var menu = nodePresenter.GetContextMenu(nodeMock, placeholderData); + + // Assert + Assert.AreEqual(7, menu.Items.Count); + + TestHelper.AssertContextMenuStripContainsItem(menu, 0, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Open, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Open_ToolTip, RingtoetsCommonFormsResources.OpenIcon); + TestHelper.AssertContextMenuStripContainsItem(menu, 2, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Erase, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Erase_ToolTip, RingtoetsCommonFormsResources.ClearIcon); + TestHelper.AssertContextMenuStripContainsItem(menu, 4, RingtoetsCommonFormsResources.FailureMechanism_Export, RingtoetsCommonFormsResources.FailureMechanism_Export_ToolTip, RingtoetsCommonFormsResources.ExportIcon); + TestHelper.AssertContextMenuStripContainsItem(menu, 6, RingtoetsCommonFormsResources.FailureMechanism_Properties, RingtoetsCommonFormsResources.FailureMechanism_Properties_ToolTip, RingtoetsCommonFormsResources.PropertiesIcon); + + CollectionAssert.AllItemsAreInstancesOfType(new[] { menu.Items[1], menu.Items[3], menu.Items[5] }, typeof(ToolStripSeparator)); + } } } \ No newline at end of file