Index: Riskeer/Common/src/Riskeer.Common.Forms/TreeNodeInfos/RiskeerContextMenuBuilder.cs
===================================================================
diff -u -rb2d2e3bdec7f5a7a486e6f7175e807d7e251e18d -r65dd8ecad3666fb01a8dbe1b03091ddc08eead7d
--- Riskeer/Common/src/Riskeer.Common.Forms/TreeNodeInfos/RiskeerContextMenuBuilder.cs (.../RiskeerContextMenuBuilder.cs) (revision b2d2e3bdec7f5a7a486e6f7175e807d7e251e18d)
+++ Riskeer/Common/src/Riskeer.Common.Forms/TreeNodeInfos/RiskeerContextMenuBuilder.cs (.../RiskeerContextMenuBuilder.cs) (revision 65dd8ecad3666fb01a8dbe1b03091ddc08eead7d)
@@ -82,11 +82,14 @@
///
/// Adds an item to the , which clears the output of all calculations in a calculation group.
///
- /// The calculation group 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 AddClearAllCalculationOutputInGroupItem(CalculationGroup calculationGroup)
+ public RiskeerContextMenuBuilder AddClearAllCalculationOutputInGroupItem(
+ Func isContextItemEnabledFunc, IClearCalculationOutputChangeHandler changeHandler)
{
- contextMenuBuilder.AddCustomItem(RiskeerContextMenuItemFactory.CreateClearAllCalculationOutputInGroupItem(calculationGroup));
+ contextMenuBuilder.AddCustomItem(RiskeerContextMenuItemFactory.CreateClearAllCalculationOutputInGroupItem(
+ isContextItemEnabledFunc, changeHandler));
return this;
}
Index: Riskeer/Common/test/Riskeer.Common.Forms.Test/TreeNodeInfos/RiskeerContextMenuBuilderTest.cs
===================================================================
diff -u -rb2d2e3bdec7f5a7a486e6f7175e807d7e251e18d -r65dd8ecad3666fb01a8dbe1b03091ddc08eead7d
--- Riskeer/Common/test/Riskeer.Common.Forms.Test/TreeNodeInfos/RiskeerContextMenuBuilderTest.cs (.../RiskeerContextMenuBuilderTest.cs) (revision b2d2e3bdec7f5a7a486e6f7175e807d7e251e18d)
+++ Riskeer/Common/test/Riskeer.Common.Forms.Test/TreeNodeInfos/RiskeerContextMenuBuilderTest.cs (.../RiskeerContextMenuBuilderTest.cs) (revision 65dd8ecad3666fb01a8dbe1b03091ddc08eead7d)
@@ -135,94 +135,35 @@
}
[Test]
- public void AddClearAllCalculationOutputInGroupItem_WhenBuildWithCalculationOutput_ItemAddedToContextMenuEnabled()
+ [TestCase(true)]
+ [TestCase(false)]
+ public void AddClearAllCalculationOutputInGroupItem_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 alle berekeningen binnen deze map met berekeningen."
+ : "Er zijn geen berekeningen met uitvoer om te wissen.";
- calculationWithOutput.Expect(c => c.HasOutput).Return(true);
-
- mocks.ReplayAll();
-
- var calculationGroup = new CalculationGroup
- {
- Children =
- {
- calculationWithOutput
- }
- };
- using (var treeViewControl = new TreeViewControl())
- {
- var contextMenuBuilder = new ContextMenuBuilder(applicationFeatureCommands,
- importCommandHandler,
- exportCommandHandler,
- updateCommandHandler,
- viewCommands,
- calculationGroup, treeViewControl);
- var riskeerContextMenuBuilder = new RiskeerContextMenuBuilder(contextMenuBuilder);
-
- // Call
- ContextMenuStrip result = riskeerContextMenuBuilder.AddClearAllCalculationOutputInGroupItem(calculationGroup).Build();
-
- // Assert
- Assert.IsInstanceOf(result);
- Assert.AreEqual(1, result.Items.Count);
-
- TestHelper.AssertContextMenuStripContainsItem(result, 0,
- "&Wis alle uitvoer...",
- "Wis de uitvoer van alle berekeningen binnen deze map met berekeningen.",
- RiskeerFormsResources.ClearIcon);
- }
-
- mocks.VerifyAll();
- }
-
- [Test]
- public void AddClearAllCalculationOutputInGroupItem_WhenBuildWithoutCalculationOutput_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 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 alle uitvoer...", contextMenuItem.Text);
+ Assert.AreEqual(expectedToolTipMessage, contextMenuItem.ToolTipText);
+ Assert.AreEqual(isEnabled, contextMenuItem.Enabled);
+ });
mocks.ReplayAll();
- var calculationGroup = new CalculationGroup();
+ var riskeerContextMenuBuilder = new RiskeerContextMenuBuilder(contextMenuBuilder);
- using (var treeViewControl = new TreeViewControl())
- {
- var contextMenuBuilder = new ContextMenuBuilder(applicationFeatureCommands,
- importCommandHandler,
- exportCommandHandler,
- updateCommandHandler,
- viewCommands,
- calculationGroup,
- treeViewControl);
- var riskeerContextMenuBuilder = new RiskeerContextMenuBuilder(contextMenuBuilder);
+ // Call
+ riskeerContextMenuBuilder.AddClearAllCalculationOutputInGroupItem(
+ () => isEnabled, changeHandler);
- // Call
- ContextMenuStrip result = riskeerContextMenuBuilder.AddClearAllCalculationOutputInGroupItem(calculationGroup).Build();
-
- // Assert
- Assert.IsInstanceOf(result);
- Assert.AreEqual(1, result.Items.Count);
-
- TestHelper.AssertContextMenuStripContainsItem(result, 0,
- "&Wis alle uitvoer...",
- "Er zijn geen berekeningen met uitvoer om te wissen.",
- RiskeerFormsResources.ClearIcon,
- false);
- }
-
+ // Assert
mocks.VerifyAll();
}