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