Index: Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuBuilder.cs
===================================================================
diff -u -r0a1752d24408af81508bc81d154293be23c9c4ea -r578037b5080f7a4820286ea02c6b4c322a8b1b09
--- Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuBuilder.cs (.../RingtoetsContextMenuBuilder.cs) (revision 0a1752d24408af81508bc81d154293be23c9c4ea)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuBuilder.cs (.../RingtoetsContextMenuBuilder.cs) (revision 578037b5080f7a4820286ea02c6b4c322a8b1b09)
@@ -111,15 +111,17 @@
/// The calculation to perform.
/// The calculation context belonging to the calculation.
/// The action that performs the calculation.
+ /// The func that checks if the item is enabled.
/// The itself.
public RingtoetsContextMenuBuilder AddPerformCalculationItem(
TCalculation calculation,
TCalculationContext calculationContext,
- Action calculateAction)
+ Action calculateAction,
+ Func isEnabledFunc)
where TCalculationContext : ICalculationContext
where TCalculation : ICalculation
{
- contextMenuBuilder.AddCustomItem(ringtoetsContextMenuItemFactory.CreatePerformCalculationItem(calculation, calculationContext, calculateAction));
+ contextMenuBuilder.AddCustomItem(ringtoetsContextMenuItemFactory.CreatePerformCalculationItem(calculation, calculationContext, calculateAction, isEnabledFunc));
return this;
}
Index: Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuItemFactory.cs
===================================================================
diff -u -r0a1752d24408af81508bc81d154293be23c9c4ea -r578037b5080f7a4820286ea02c6b4c322a8b1b09
--- Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuItemFactory.cs (.../RingtoetsContextMenuItemFactory.cs) (revision 0a1752d24408af81508bc81d154293be23c9c4ea)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/TreeNodeInfos/RingtoetsContextMenuItemFactory.cs (.../RingtoetsContextMenuItemFactory.cs) (revision 578037b5080f7a4820286ea02c6b4c322a8b1b09)
@@ -130,19 +130,24 @@
/// The calculation to perform.
/// The calculation context belonging to the calculation.
/// The action that performs the calculation.
+ /// The func that checks if the item is enabled.
/// The created .
public StrictContextMenuItem CreatePerformCalculationItem(
TCalculation calculation,
TCalculationContext calculationContext,
- Action calculateAction)
+ Action calculateAction,
+ Func isEnabledFunc)
where TCalculationContext : ICalculationContext
where TCalculation : ICalculation
{
return new StrictContextMenuItem(
Resources.Calculate,
Resources.Calculate_ToolTip,
Resources.CalculateIcon,
- (o, args) => calculateAction(calculation, calculationContext));
+ (o, args) => calculateAction(calculation, calculationContext))
+ {
+ Enabled = isEnabledFunc(calculationContext)
+ };
}
///
Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuBuilderTest.cs
===================================================================
diff -u -rec8ec68f9a97921ccca392be5c29eff514266cfa -r578037b5080f7a4820286ea02c6b4c322a8b1b09
--- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuBuilderTest.cs (.../RingtoetsContextMenuBuilderTest.cs) (revision ec8ec68f9a97921ccca392be5c29eff514266cfa)
+++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuBuilderTest.cs (.../RingtoetsContextMenuBuilderTest.cs) (revision 578037b5080f7a4820286ea02c6b4c322a8b1b09)
@@ -268,7 +268,7 @@
var ringtoetsContextMenuBuilder = new RingtoetsContextMenuBuilder(contextMenuBuilder);
// Call
- var result = ringtoetsContextMenuBuilder.AddPerformCalculationItem(calculation, calculationContext, null).Build();
+ var result = ringtoetsContextMenuBuilder.AddPerformCalculationItem(calculation, calculationContext, null, context => true).Build();
// Assert
Assert.IsInstanceOf(result);
Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuItemFactoryTest.cs
===================================================================
diff -u -rec8ec68f9a97921ccca392be5c29eff514266cfa -r578037b5080f7a4820286ea02c6b4c322a8b1b09
--- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuItemFactoryTest.cs (.../RingtoetsContextMenuItemFactoryTest.cs) (revision ec8ec68f9a97921ccca392be5c29eff514266cfa)
+++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/TreeNodeInfos/RingtoetsContextMenuItemFactoryTest.cs (.../RingtoetsContextMenuItemFactoryTest.cs) (revision 578037b5080f7a4820286ea02c6b4c322a8b1b09)
@@ -390,7 +390,7 @@
}
[Test]
- public void CreatePerformCalculationItem_Always_CreatesDecoratedItem()
+ public void CreatePerformCalculationItem_IsEnabledFuncTrue_CreatesDecoratedAndEnabledItem()
{
// Setup
var mocks = new MockRepository();
@@ -402,7 +402,7 @@
var calculationContext = new TestCalculationContext(calculation, failureMechanismMock);
// Call
- var toolStripItem = factory.CreatePerformCalculationItem(calculation, calculationContext, null);
+ var toolStripItem = factory.CreatePerformCalculationItem(calculation, calculationContext, null, context => true);
// Assert
Assert.AreEqual(RingtoetsFormsResources.Calculate, toolStripItem.Text);
@@ -414,6 +414,30 @@
}
[Test]
+ public void CreatePerformCalculationItem_IsEnabledFuncFalse_CreatesDecoratedAndDisabledItem()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var failureMechanisMock = mocks.StrictMock();
+
+ mocks.ReplayAll();
+
+ var calculation = new TestCalculation();
+ var calculationContext = new TestCalculationContext(calculation, failureMechanisMock);
+
+ // Call
+ var toolStripItem = factory.CreatePerformCalculationItem(calculation, calculationContext, null, context => false);
+
+ // Assert
+ Assert.AreEqual(RingtoetsFormsResources.Calculate, toolStripItem.Text);
+ Assert.AreEqual(RingtoetsFormsResources.Calculate_ToolTip, toolStripItem.ToolTipText);
+ TestHelper.AssertImagesAreEqual(RingtoetsFormsResources.CalculateIcon, toolStripItem.Image);
+ Assert.IsFalse(toolStripItem.Enabled);
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
public void CreatePerformCalculationItem_PerformClickOnCreatedItem_PerformCalculationMethod()
{
// Setup
@@ -426,7 +450,7 @@
var calculationContext = new TestCalculationContext(calculation, failureMechanismMock);
var counter = 0;
- var toolStripItem = factory.CreatePerformCalculationItem(calculation, calculationContext, (calc, context) => counter++);
+ var toolStripItem = factory.CreatePerformCalculationItem(calculation, calculationContext, (calc, context) => counter++, context => true);
// Call
toolStripItem.PerformClick();
Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs
===================================================================
diff -u -r0a1752d24408af81508bc81d154293be23c9c4ea -r578037b5080f7a4820286ea02c6b4c322a8b1b09
--- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 0a1752d24408af81508bc81d154293be23c9c4ea)
+++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 578037b5080f7a4820286ea02c6b4c322a8b1b09)
@@ -412,7 +412,7 @@
GrassCoverErosionInwardsCalculation calculation = nodeData.WrappedData;
- return builder.AddPerformCalculationItem(calculation, nodeData, PerformCalculation)
+ return builder.AddPerformCalculationItem(calculation, nodeData, PerformCalculation, EnablePerformCalculation)
.AddClearCalculationOutputItem(calculation)
.AddSeparator()
.AddRenameItem()
@@ -428,6 +428,11 @@
.Build();
}
+ private bool EnablePerformCalculation(GrassCoverErosionInwardsCalculationContext context)
+ {
+ return context.AssessmentSection.HydraulicBoundaryDatabase != null && context.FailureMechanism.Sections.Any();
+ }
+
private void PerformCalculation(GrassCoverErosionInwardsCalculation calculation, GrassCoverErosionInwardsCalculationContext context)
{
var activity = CreateHydraRingTargetProbabilityCalculationActivity(
Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/TreeNodeInfos/GrassCoverErosionInwardsCalculationContextTreeNodeInfoTest.cs
===================================================================
diff -u -r266b001fc7fcb405383d2411a970efa735e3c66d -r578037b5080f7a4820286ea02c6b4c322a8b1b09
--- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/TreeNodeInfos/GrassCoverErosionInwardsCalculationContextTreeNodeInfoTest.cs (.../GrassCoverErosionInwardsCalculationContextTreeNodeInfoTest.cs) (revision 266b001fc7fcb405383d2411a970efa735e3c66d)
+++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Forms.Test/TreeNodeInfos/GrassCoverErosionInwardsCalculationContextTreeNodeInfoTest.cs (.../GrassCoverErosionInwardsCalculationContextTreeNodeInfoTest.cs) (revision 578037b5080f7a4820286ea02c6b4c322a8b1b09)
@@ -139,6 +139,7 @@
var failureMechanism = new GrassCoverErosionInwardsFailureMechanism();
var assessmentSectionMock = mocks.StrictMock();
+ assessmentSectionMock.Expect(asm => asm.HydraulicBoundaryDatabase).Return(null);
var calculation = new GrassCoverErosionInwardsCalculation(new GeneralGrassCoverErosionInwardsInput());
var nodeData = new GrassCoverErosionInwardsCalculationContext(calculation, failureMechanism, assessmentSectionMock);
@@ -157,14 +158,16 @@
}
[Test]
- public void ContextMenuStrip_CalculationWithoutOutput_ContextMenuItemClearOutputDisabled()
+ public void ContextMenuStrip_NoHydraulicDatabaseAndFailureMechanismSections_ContextMenuItemPerformCalculationDisabled()
{
// Setup
var gui = mocks.StrictMock();
var treeViewControlMock = mocks.StrictMock();
var failureMechanism = new GrassCoverErosionInwardsFailureMechanism();
var assessmentSectionMock = mocks.StrictMock();
+ assessmentSectionMock.Expect(asm => asm.HydraulicBoundaryDatabase).Return(null);
+
var calculation = new GrassCoverErosionInwardsCalculation(new GeneralGrassCoverErosionInwardsInput());
var nodeData = new GrassCoverErosionInwardsCalculationContext(calculation, failureMechanism, assessmentSectionMock);
@@ -181,7 +184,68 @@
// Assert
mocks.VerifyAll(); // Expect no calls on arguments
+ TestHelper.AssertContextMenuStripContainsItem(contextMenu, 0, RingtoetsCommonFormsResources.Calculate, RingtoetsCommonFormsResources.Calculate_ToolTip, RingtoetsCommonFormsResources.CalculateIcon, false);
+ }
+
+ [Test]
+ public void ContextMenuStrip_HydraulicDatabaseAndFailureMechanismSectionsSet_ContextMenuItemPerformCalculationEnabled()
+ {
+ // Setup
+ var gui = mocks.StrictMock();
+ var treeViewControlMock = mocks.StrictMock();
+
+ var failureMechanism = new GrassCoverErosionInwardsFailureMechanism();
+ failureMechanism.AddSection(new FailureMechanismSection("test", new[] { new Point2D(0, 0) }));
+
+ var assessmentSectionMock = mocks.StrictMock();
+ assessmentSectionMock.Expect(asm => asm.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase());
+
+ var calculation = new GrassCoverErosionInwardsCalculation(new GeneralGrassCoverErosionInwardsInput());
+
+ var nodeData = new GrassCoverErosionInwardsCalculationContext(calculation, failureMechanism, assessmentSectionMock);
+
+ gui.Expect(cmp => cmp.Get(nodeData, treeViewControlMock)).Return(new CustomItemsOnlyContextMenuBuilder());
+
+ mocks.ReplayAll();
+
+ plugin.Gui = gui;
+
+ // Call
+ var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControlMock);
+
+ // Assert
+ mocks.VerifyAll(); // Expect no calls on arguments
+
TestHelper.AssertContextMenuStripContainsItem(contextMenu, 0, RingtoetsCommonFormsResources.Calculate, RingtoetsCommonFormsResources.Calculate_ToolTip, RingtoetsCommonFormsResources.CalculateIcon);
+ }
+
+ [Test]
+ public void ContextMenuStrip_CalculationWithoutOutput_ContextMenuItemClearOutputDisabled()
+ {
+ // Setup
+ var gui = mocks.StrictMock();
+ var treeViewControlMock = mocks.StrictMock();
+
+ var failureMechanism = new GrassCoverErosionInwardsFailureMechanism();
+ var assessmentSectionMock = mocks.StrictMock();
+ assessmentSectionMock.Expect(asm => asm.HydraulicBoundaryDatabase).Return(new HydraulicBoundaryDatabase());
+
+ var calculation = new GrassCoverErosionInwardsCalculation(new GeneralGrassCoverErosionInwardsInput());
+
+ var nodeData = new GrassCoverErosionInwardsCalculationContext(calculation, failureMechanism, assessmentSectionMock);
+
+ gui.Expect(cmp => cmp.Get(nodeData, treeViewControlMock)).Return(new CustomItemsOnlyContextMenuBuilder());
+
+ mocks.ReplayAll();
+
+ plugin.Gui = gui;
+
+ // Call
+ var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControlMock);
+
+ // Assert
+ mocks.VerifyAll(); // Expect no calls on arguments
+
TestHelper.AssertContextMenuStripContainsItem(contextMenu, 1, RingtoetsCommonFormsResources.Clear_output, RingtoetsCommonFormsResources.ClearOutput_No_output_to_clear, RingtoetsCommonFormsResources.ClearIcon, false);
}
@@ -193,6 +257,7 @@
var failureMechanism = new GrassCoverErosionInwardsFailureMechanism();
var assessmentSectionMock = mocks.StrictMock();
+ assessmentSectionMock.Expect(asm => asm.HydraulicBoundaryDatabase).Return(null);
var calculation = new GrassCoverErosionInwardsCalculation(new GeneralGrassCoverErosionInwardsInput())
{
Output = new GrassCoverErosionInwardsOutput(0, 0, 0, 0, 0)
@@ -212,7 +277,6 @@
// Assert
mocks.VerifyAll(); // Expect no calls on arguments
- TestHelper.AssertContextMenuStripContainsItem(contextMenu, 0, RingtoetsCommonFormsResources.Calculate, RingtoetsCommonFormsResources.Calculate_ToolTip, RingtoetsCommonFormsResources.CalculateIcon);
TestHelper.AssertContextMenuStripContainsItem(contextMenu, 1, RingtoetsCommonFormsResources.Clear_output, RingtoetsCommonFormsResources.Clear_output_ToolTip, RingtoetsCommonFormsResources.ClearIcon);
}
@@ -228,6 +292,7 @@
var failureMechanism = new GrassCoverErosionInwardsFailureMechanism();
var assessmentSectionMock = mocks.StrictMock();
+ assessmentSectionMock.Expect(asm => asm.HydraulicBoundaryDatabase).Return(null);
var calculation = new GrassCoverErosionInwardsCalculation(new GeneralGrassCoverErosionInwardsInput());
var calculationContext = new GrassCoverErosionInwardsCalculationContext(calculation, failureMechanism, assessmentSectionMock);
@@ -311,7 +376,7 @@
};
var assessmentSectionMock = mocks.StrictMock();
- assessmentSectionMock.Expect(asm => asm.HydraulicBoundaryDatabase).Return(hydraulicBoundaryDatabase);
+ assessmentSectionMock.Stub(asm => asm.HydraulicBoundaryDatabase).Return(hydraulicBoundaryDatabase);
var calculationOutput = new GrassCoverErosionInwardsOutput(double.NaN, double.NaN, double.NaN, double.NaN, double.NaN);
var calculation = new GrassCoverErosionInwardsCalculation(new GeneralGrassCoverErosionInwardsInput())
{
Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Activities/HydraRingActivityFactory.cs
===================================================================
diff -u -rdec46d5efaad5332ffb2a96e67ec11209ddc5515 -r578037b5080f7a4820286ea02c6b4c322a8b1b09
--- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Activities/HydraRingActivityFactory.cs (.../HydraRingActivityFactory.cs) (revision dec46d5efaad5332ffb2a96e67ec11209ddc5515)
+++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Activities/HydraRingActivityFactory.cs (.../HydraRingActivityFactory.cs) (revision 578037b5080f7a4820286ea02c6b4c322a8b1b09)
@@ -89,11 +89,6 @@
HydraRingUncertaintiesType uncertaintiesType, HydraRingCalculationInput hydraRingCalculationInput,
object action)
{
- if (string.IsNullOrEmpty(name))
- {
- throw new ArgumentException(@"Name should be set.", "name");
- }
-
if (string.IsNullOrEmpty(hlcdDirectory))
{
throw new ArgumentException(@"HLCD directory should be set.", "hlcdDirectory");
Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Activities/HydraRingActivityFactoryTest.cs
===================================================================
diff -u -rdec46d5efaad5332ffb2a96e67ec11209ddc5515 -r578037b5080f7a4820286ea02c6b4c322a8b1b09
--- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Activities/HydraRingActivityFactoryTest.cs (.../HydraRingActivityFactoryTest.cs) (revision dec46d5efaad5332ffb2a96e67ec11209ddc5515)
+++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Activities/HydraRingActivityFactoryTest.cs (.../HydraRingActivityFactoryTest.cs) (revision 578037b5080f7a4820286ea02c6b4c322a8b1b09)
@@ -35,23 +35,6 @@
#region ExceedanceProbabilityCalculationInput
[Test]
- public void CreateExceedanceProbabilityCalculationInput_InputEmptyName_ThrowsArgumentException()
- {
- // Setup
- var mocks = new MockRepository();
- var exceedanceProbabilityCalculationInput = mocks.StrictMock(1);
-
- mocks.ReplayAll();
-
- // Call
- TestDelegate test = () => HydraRingActivityFactory.Create("", "hlcdDirectory", "ringId", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, exceedanceProbabilityCalculationInput, output => { });
-
- // Assert
- var exception = Assert.Throws(test, "Name should be set.");
- Assert.AreEqual("name", exception.ParamName);
- }
-
- [Test]
public void CreateExceedanceProbabilityCalculationInput_InputEmptyHlcdDirectory_ThrowsArgumentException()
{
// Setup
@@ -140,23 +123,6 @@
#region TargetProbabilityCalculationInput
[Test]
- public void CreateTargetProbabilityCalculationInput_InputEmptyName_ThrowsArgumentException()
- {
- // Setup
- var mocks = new MockRepository();
- var targetProbabilityCalculationInput = mocks.StrictMock(1, 2.2);
-
- mocks.ReplayAll();
-
- // Call
- TestDelegate test = () => HydraRingActivityFactory.Create("", "hlcdDirectory", "ringId", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, targetProbabilityCalculationInput, output => { });
-
- // Assert
- var exception = Assert.Throws(test, "Name should be set.");
- Assert.AreEqual("name", exception.ParamName);
- }
-
- [Test]
public void CreateTargetProbabilityCalculationInput_InputEmptyHlcdDirectory_ThrowsArgumentException()
{
// Setup
Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs
===================================================================
diff -u -r0a1752d24408af81508bc81d154293be23c9c4ea -r578037b5080f7a4820286ea02c6b4c322a8b1b09
--- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 0a1752d24408af81508bc81d154293be23c9c4ea)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 578037b5080f7a4820286ea02c6b4c322a8b1b09)
@@ -409,7 +409,7 @@
(o, args) => { PipingCalculationService.Validate(calculation); });
return builder.AddCustomItem(validateItem)
- .AddPerformCalculationItem(calculation, nodeData, PerformCalculation)
+ .AddPerformCalculationItem(calculation, nodeData, PerformCalculation, context => true)
.AddClearCalculationOutputItem(calculation)
.AddSeparator()
.AddRenameItem()
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationScenarioContextTreeNodeInfoTest.cs
===================================================================
diff -u -r9643d7e5bbb27a7782b5d939b029a70a1c023138 -r578037b5080f7a4820286ea02c6b4c322a8b1b09
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationScenarioContextTreeNodeInfoTest.cs (.../PipingCalculationScenarioContextTreeNodeInfoTest.cs) (revision 9643d7e5bbb27a7782b5d939b029a70a1c023138)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationScenarioContextTreeNodeInfoTest.cs (.../PipingCalculationScenarioContextTreeNodeInfoTest.cs) (revision 578037b5080f7a4820286ea02c6b4c322a8b1b09)
@@ -179,6 +179,7 @@
[Test]
public void ContextMenuStrip_PipingCalculationWithOutput_ContextMenuItemClearOutputEnabled()
{
+ // Setup
var gui = mocks.StrictMock();
var treeViewControlMock = mocks.StrictMock();
var calculation = new PipingCalculationScenario(new GeneralPipingInput(), new NormProbabilityPipingInput())
@@ -211,6 +212,36 @@
}
[Test]
+ public void ContextMenuStrip_Always_ContextMenuItemPerformCalculationEnabled()
+ {
+ // Setup
+ var gui = mocks.StrictMock();
+ var treeViewControlMock = mocks.StrictMock();
+ var calculation = new PipingCalculationScenario(new GeneralPipingInput(), new NormProbabilityPipingInput());
+ var pipingFailureMechanismMock = mocks.StrictMock();
+ var assessmentSectionMock = mocks.StrictMock();
+ var nodeData = new PipingCalculationScenarioContext(calculation,
+ Enumerable.Empty(),
+ Enumerable.Empty(),
+ pipingFailureMechanismMock,
+ assessmentSectionMock);
+
+ gui.Expect(cmp => cmp.Get(nodeData, treeViewControlMock)).Return(new CustomItemsOnlyContextMenuBuilder());
+
+ mocks.ReplayAll();
+
+ plugin.Gui = gui;
+
+ // Call
+ var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControlMock);
+
+ // Assert
+ mocks.VerifyAll(); // Expect no calls on arguments
+
+ TestHelper.AssertContextMenuStripContainsItem(contextMenu, 1, RingtoetsCommonFormsResources.Calculate, RingtoetsCommonFormsResources.Calculate_ToolTip, RingtoetsCommonFormsResources.CalculateIcon);
+ }
+
+ [Test]
public void ContextMenuStrip_Always_CallsContextMenuBuilderMethods()
{
// Setup