Index: Riskeer/Common/src/Riskeer.Common.Forms/TreeNodeInfos/RiskeerContextMenuBuilder.cs
===================================================================
diff -u -r65dd8ecad3666fb01a8dbe1b03091ddc08eead7d -r1df72aab255f14ed757bf592b38148985b9bc524
--- Riskeer/Common/src/Riskeer.Common.Forms/TreeNodeInfos/RiskeerContextMenuBuilder.cs (.../RiskeerContextMenuBuilder.cs) (revision 65dd8ecad3666fb01a8dbe1b03091ddc08eead7d)
+++ Riskeer/Common/src/Riskeer.Common.Forms/TreeNodeInfos/RiskeerContextMenuBuilder.cs (.../RiskeerContextMenuBuilder.cs) (revision 1df72aab255f14ed757bf592b38148985b9bc524)
@@ -198,11 +198,14 @@
///
/// Adds an item to the , which clears the output of a calculation.
///
- /// The calculation to clear the output for.
+ /// The function to determine whether the context menu item should be enabled.
+ /// Object responsible for clearing the calculation output.
/// The itself.
- public RiskeerContextMenuBuilder AddClearCalculationOutputItem(ICalculation calculation)
+ public RiskeerContextMenuBuilder AddClearCalculationOutputItem(
+ Func isContextItemEnabledFunc, IClearCalculationOutputChangeHandler changeHandler)
{
- contextMenuBuilder.AddCustomItem(RiskeerContextMenuItemFactory.CreateClearCalculationOutputItem(calculation));
+ contextMenuBuilder.AddCustomItem(RiskeerContextMenuItemFactory.CreateClearCalculationOutputItem(
+ isContextItemEnabledFunc, changeHandler));
return this;
}
Index: Riskeer/Common/test/Riskeer.Common.Forms.Test/TreeNodeInfos/RiskeerContextMenuBuilderTest.cs
===================================================================
diff -u -r65dd8ecad3666fb01a8dbe1b03091ddc08eead7d -r1df72aab255f14ed757bf592b38148985b9bc524
--- Riskeer/Common/test/Riskeer.Common.Forms.Test/TreeNodeInfos/RiskeerContextMenuBuilderTest.cs (.../RiskeerContextMenuBuilderTest.cs) (revision 65dd8ecad3666fb01a8dbe1b03091ddc08eead7d)
+++ Riskeer/Common/test/Riskeer.Common.Forms.Test/TreeNodeInfos/RiskeerContextMenuBuilderTest.cs (.../RiskeerContextMenuBuilderTest.cs) (revision 1df72aab255f14ed757bf592b38148985b9bc524)
@@ -246,89 +246,35 @@
}
[Test]
- public void AddClearCalculationOutputItem_WhenBuildWithCalculationWithOutput_ItemAddedToContextMenuEnabled()
+ [TestCase(true)]
+ [TestCase(false)]
+ public void AddClearCalculationOutputItem_EnabledSituation_ItemAddedToContextMenuAsExpected(bool isEnabled)
{
// Setup
- var mocks = new MockRepository();
- var applicationFeatureCommands = mocks.StrictMock();
- var importCommandHandler = mocks.StrictMock();
- var exportCommandHandler = mocks.StrictMock();
- var updateCommandHandler = mocks.StrictMock();
- var viewCommands = mocks.StrictMock();
- var calculationWithOutput = mocks.StrictMock();
+ string expectedToolTipMessage = isEnabled
+ ? "Wis de uitvoer van deze berekening."
+ : "Deze berekening heeft geen uitvoer om te wissen.";
- calculationWithOutput.Expect(c => c.HasOutput).Return(true);
-
- mocks.ReplayAll();
-
- using (var treeViewControl = new TreeViewControl())
- {
- var contextMenuBuilder = new ContextMenuBuilder(applicationFeatureCommands,
- importCommandHandler,
- exportCommandHandler,
- updateCommandHandler,
- viewCommands,
- calculationWithOutput,
- treeViewControl);
- var riskeerContextMenuBuilder = new RiskeerContextMenuBuilder(contextMenuBuilder);
-
- // Call
- ContextMenuStrip result = riskeerContextMenuBuilder.AddClearCalculationOutputItem(calculationWithOutput).Build();
-
- // Assert
- Assert.IsInstanceOf(result);
- Assert.AreEqual(1, result.Items.Count);
-
- TestHelper.AssertContextMenuStripContainsItem(result, 0,
- "&Wis uitvoer...",
- "Wis de uitvoer van deze berekening.",
- RiskeerFormsResources.ClearIcon);
- }
-
- mocks.VerifyAll();
- }
-
- [Test]
- public void AddClearCalculationOutputItem_WhenBuildWithCalculationWithoutOutput_ItemAddedToContextMenuDisabled()
- {
- // Setup
var mocks = new MockRepository();
- var applicationFeatureCommands = mocks.StrictMock();
- var importCommandHandler = mocks.StrictMock();
- var exportCommandHandler = mocks.StrictMock();
- var updateCommandHandler = mocks.StrictMock();
- var viewCommands = mocks.StrictMock();
- var calculationWithoutOutput = mocks.StrictMock();
-
- calculationWithoutOutput.Expect(c => c.HasOutput).Return(false);
-
+ var changeHandler = mocks.Stub();
+ var contextMenuBuilder = mocks.StrictMock();
+ contextMenuBuilder.Expect(cmb => cmb.AddCustomItem(Arg.Is.NotNull))
+ .WhenCalled(arg =>
+ {
+ var contextMenuItem = (StrictContextMenuItem) arg.Arguments[0];
+ Assert.AreEqual("&Wis uitvoer...", contextMenuItem.Text);
+ Assert.AreEqual(expectedToolTipMessage, contextMenuItem.ToolTipText);
+ Assert.AreEqual(isEnabled, contextMenuItem.Enabled);
+ });
mocks.ReplayAll();
- using (var treeViewControl = new TreeViewControl())
- {
- var contextMenuBuilder = new ContextMenuBuilder(applicationFeatureCommands,
- importCommandHandler,
- exportCommandHandler,
- updateCommandHandler,
- viewCommands,
- calculationWithoutOutput,
- treeViewControl);
- var riskeerContextMenuBuilder = new RiskeerContextMenuBuilder(contextMenuBuilder);
+ var riskeerContextMenuBuilder = new RiskeerContextMenuBuilder(contextMenuBuilder);
- // Call
- ContextMenuStrip result = riskeerContextMenuBuilder.AddClearCalculationOutputItem(calculationWithoutOutput).Build();
+ // Call
+ riskeerContextMenuBuilder.AddClearCalculationOutputItem(
+ () => isEnabled, changeHandler);
- // Assert
- Assert.IsInstanceOf(result);
- Assert.AreEqual(1, result.Items.Count);
-
- TestHelper.AssertContextMenuStripContainsItem(result, 0,
- "&Wis uitvoer...",
- "Deze berekening heeft geen uitvoer om te wissen.",
- RiskeerFormsResources.ClearIcon,
- false);
- }
-
+ // Assert
mocks.VerifyAll();
}