Index: Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Plugin/WaveImpactAsphaltCoverPlugin.cs =================================================================== diff -u -rada94ef2b6943fb9a2d8e59256871205a7d4c4ee -rf8e4a303232fcbc2aa277622ffd883599f5b1f4d --- Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Plugin/WaveImpactAsphaltCoverPlugin.cs (.../WaveImpactAsphaltCoverPlugin.cs) (revision ada94ef2b6943fb9a2d8e59256871205a7d4c4ee) +++ Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Plugin/WaveImpactAsphaltCoverPlugin.cs (.../WaveImpactAsphaltCoverPlugin.cs) (revision f8e4a303232fcbc2aa277622ffd883599f5b1f4d) @@ -41,7 +41,6 @@ using Ringtoets.Common.Forms.PresentationObjects; using Ringtoets.Common.Forms.TreeNodeInfos; using Ringtoets.Common.Service; -using Ringtoets.Revetment.Data; using Ringtoets.Revetment.IO.Importers; using Ringtoets.WaveImpactAsphaltCover.Data; using Ringtoets.WaveImpactAsphaltCover.Forms; @@ -361,8 +360,13 @@ { CalculationGroup group = nodeData.WrappedData; var builder = new RingtoetsContextMenuBuilder(Gui.Get(nodeData, treeViewControl)); + var inquiryHelper = new DialogBasedInquiryHelper(Gui.MainWindow); bool isNestedGroup = parentData is WaveImpactAsphaltCoverWaveConditionsCalculationGroupContext; + WaveImpactAsphaltCoverWaveConditionsCalculation[] calculations = group + .GetCalculations() + .OfType().ToArray(); + StrictContextMenuItem generateCalculationsItem = CreateGenerateWaveConditionsCalculationsItem(nodeData); builder.AddImportItem() @@ -381,11 +385,14 @@ if (isNestedGroup) { - builder.AddRenameItem() - .AddSeparator(); + builder.AddRenameItem(); } - builder.AddValidateAllCalculationsInGroupItem(nodeData, + builder.AddUpdateForeshoreProfileOfCalculationsItem(calculations, + inquiryHelper, + SynchronizeCalculationWithForeshoreProfileHelper.UpdateForeshoreProfileDerivedCalculationInput) + .AddSeparator() + .AddValidateAllCalculationsInGroupItem(nodeData, ValidateAll, ValidateAllDataAvailableAndGetErrorMessageForCalculationGroup) .AddPerformAllCalculationsInGroupItem(group, nodeData, CalculateAll, ValidateAllDataAvailableAndGetErrorMessageForCalculationGroup) Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test/TreeNodeInfos/WaveImpactAsphaltCoverWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -r08d25a2d4cd349395730ef39d3abf2cc51c30508 -rf8e4a303232fcbc2aa277622ffd883599f5b1f4d --- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test/TreeNodeInfos/WaveImpactAsphaltCoverWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs (.../WaveImpactAsphaltCoverWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs) (revision 08d25a2d4cd349395730ef39d3abf2cc51c30508) +++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Plugin.Test/TreeNodeInfos/WaveImpactAsphaltCoverWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs (.../WaveImpactAsphaltCoverWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs) (revision f8e4a303232fcbc2aa277622ffd883599f5b1f4d) @@ -60,25 +60,23 @@ private const int contextMenuAddGenerateCalculationsIndex = 3; private const int contextMenuAddCalculationGroupIndexRootGroup = 5; private const int contextMenuAddCalculationIndexRootGroup = 6; - private const int contextMenuValidateAllIndexRootGroup = 8; - private const int contextMenuCalculateAllIndexRootGroup = 9; - private const int contextMenuClearOutputIndexRootGroup = 11; - private const int contextMenuRemoveAllChildrenIndexRootGroup = 12; - private const int contextMenuCollapseAllIndexRootGroup = 14; - private const int contextMenuExpandAllIndexRootGroup = 15; - private const int contextMenuPropertiesIndexRootGroup = 17; + private const int contextMenuUpdateForeshoreProfileIndexRootGroup = 8; + private const int contextMenuValidateAllIndexRootGroup = 10; + private const int contextMenuCalculateAllIndexRootGroup = 11; + private const int contextMenuClearOutputIndexRootGroup = 13; + private const int contextMenuRemoveAllChildrenIndexRootGroup = 14; + private const int contextMenuCollapseAllIndexRootGroup = 16; + private const int contextMenuExpandAllIndexRootGroup = 17; + private const int contextMenuPropertiesIndexRootGroup = 19; private const int contextMenuAddCalculationGroupIndexNestedGroup = 3; private const int contextMenuAddCalculationIndexNestedGroup = 4; - private const int contextMenuRenameCalculationGroundIndexNestedGroup = 6; - private const int contextMenuValidateAllIndexNestedGroup = 8; - private const int contextMenuCalculateAllIndexNestedGroup = 9; - private const int contextMenuClearOutputIndexNestedGroup = 11; - private const int contextMenuRemoveElementIndexNestedGroup = 12; - private const int contextMenuCollapseAllIndexNestedGroup = 14; - private const int contextMenuExpandAllIndexNestedGroup = 15; - private const int contextMenuPropertiesIndexNestedGroup = 17; + private const int contextMenuUpdateForeshoreProfileIndexNestedGroup = 7; + private const int contextMenuValidateAllIndexNestedGroup = 9; + private const int contextMenuCalculateAllIndexNestedGroup = 10; + private const int contextMenuClearOutputIndexNestedGroup = 12; + private IGui gui; private MockRepository mocks; private WaveImpactAsphaltCoverPlugin plugin; private TreeNodeInfo info; @@ -87,7 +85,11 @@ public void SetUp() { mocks = new MockRepository(); - plugin = new WaveImpactAsphaltCoverPlugin(); + gui = mocks.Stub(); + plugin = new WaveImpactAsphaltCoverPlugin + { + Gui = gui + }; info = plugin.GetTreeNodeInfos().First(tni => tni.TagType == typeof(WaveImpactAsphaltCoverWaveConditionsCalculationGroupContext)); } @@ -215,126 +217,234 @@ } [Test] - public void ContextMenuStrip_NestedCalculationGroup_ReturnContextMenuWithItems() + public void ContextMenuStrip_WithoutParentNodeDefaultBehavior_CallsContextMenuBuilderMethods() { // Setup var group = new CalculationGroup(); - var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); - failureMechanism.WaveConditionsCalculationGroup.Children.Add(group); + var assessmentSection = mocks.Stub(); + var groupContext = new WaveImpactAsphaltCoverWaveConditionsCalculationGroupContext(group, + failureMechanism, + assessmentSection); + var menuBuilderMock = mocks.StrictMock(); + using (mocks.Ordered()) + { + menuBuilderMock.Expect(mb => mb.AddImportItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddExportItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddDeleteChildrenItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCollapseAllItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddExpandAllItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddPropertiesItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.Build()).Return(null); + } + + using (var treeViewControl = new TreeViewControl()) + { + gui.Stub(g => g.Get(groupContext, treeViewControl)).Return(menuBuilderMock); + gui.Stub(g => g.ViewCommands).Return(mocks.Stub()); + gui.Stub(g => g.MainWindow).Return(mocks.Stub()); + mocks.ReplayAll(); + + // Call + info.ContextMenuStrip(groupContext, null, treeViewControl); + } + // Assert + // Assert expectancies called in TearDown() + } + + [Test] + public void ContextMenuStrip_WithoutParentNodeDefaultBehavior_AddCustomItems() + { + // Setup + var group = new CalculationGroup(); + var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); var assessmentSection = mocks.Stub(); + var groupContext = new WaveImpactAsphaltCoverWaveConditionsCalculationGroupContext(group, + failureMechanism, + assessmentSection); - var nodeData = new WaveImpactAsphaltCoverWaveConditionsCalculationGroupContext(group, - failureMechanism, - assessmentSection); - var parentNodeData = new WaveImpactAsphaltCoverWaveConditionsCalculationGroupContext(failureMechanism.WaveConditionsCalculationGroup, - failureMechanism, - assessmentSection); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var applicationFeatureCommandHandler = mocks.Stub(); - var importHandlerMock = mocks.StrictMock(); - importHandlerMock.Expect(imh => imh.CanImportOn(nodeData)).Return(true); - var exportHandlerMock = mocks.StrictMock(); - exportHandlerMock.Expect(ehm => ehm.CanExportFrom(nodeData)).Return(true); - var updateHandlerMock = mocks.StrictMock(); - var viewCommandsHandler = mocks.StrictMock(); - var treeViewControl = mocks.StrictMock(); + using (var treeViewControl = new TreeViewControl()) + { + gui.Stub(g => g.Get(groupContext, treeViewControl)).Return(menuBuilder); + gui.Stub(g => g.ViewCommands).Return(mocks.Stub()); + gui.Stub(g => g.MainWindow).Return(mocks.Stub()); + mocks.ReplayAll(); - var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, - importHandlerMock, - exportHandlerMock, - updateHandlerMock, - viewCommandsHandler, - nodeData, - treeViewControl); + // Call + using (ContextMenuStrip menu = info.ContextMenuStrip(groupContext, null, treeViewControl)) + { + // Assert + Assert.AreEqual(20, menu.Items.Count); - var gui = mocks.Stub(); - gui.Stub(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddGenerateCalculationsIndex, + "Genereer &berekeningen...", + "Er is geen hydraulische randvoorwaardendatabase beschikbaar om de randvoorwaardenberekeningen te genereren.", + RingtoetsCommonFormsResources.GenerateScenariosIcon, + false); + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddCalculationGroupIndexRootGroup, + "&Map toevoegen", + "Voeg een nieuwe berekeningsmap toe aan deze berekeningsmap.", + RingtoetsCommonFormsResources.AddFolderIcon); + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddCalculationIndexRootGroup, + "Berekening &toevoegen", + "Voeg een nieuwe berekening toe aan deze berekeningsmap.", + RingtoetsCommonFormsResources.FailureMechanismIcon); - treeViewControl.Expect(tvc => tvc.CanRemoveNodeForData(nodeData)).Return(true); - treeViewControl.Expect(tvc => tvc.CanRenameNodeForData(nodeData)).Return(true); - treeViewControl.Expect(tvc => tvc.CanExpandOrCollapseForData(nodeData)).Repeat.Twice().Return(false); + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuUpdateForeshoreProfileIndexRootGroup, + "&Bijwerken voorlandprofielen...", + "De geselecteerde voorlandprofielen hebben geen wijzigingen om bij te werken.", + RingtoetsCommonFormsResources.UpdateItemIcon, + false); - mocks.ReplayAll(); + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuValidateAllIndexRootGroup, + "Alles &valideren", + "Er zijn geen berekeningen om te valideren.", + RingtoetsCommonFormsResources.ValidateAllIcon, + false); + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuCalculateAllIndexRootGroup, + "Alles be&rekenen", + "Er zijn geen berekeningen om uit te voeren.", + RingtoetsCommonFormsResources.CalculateAllIcon, + false); + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuClearOutputIndexRootGroup, + "&Wis alle uitvoer...", + "Er zijn geen berekeningen met uitvoer om te wissen.", + RingtoetsCommonFormsResources.ClearIcon, + false); + } + } + } - plugin.Gui = gui; + [Test] + public void ContextMenuStrip_NestedCalculationGroup_CallsContextMenuBuilderMethods() + { + // Setup + var group = new CalculationGroup(); + var parentGroup = new CalculationGroup(); + var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); + var assessmentSection = mocks.Stub(); + var groupContext = new WaveImpactAsphaltCoverWaveConditionsCalculationGroupContext(group, + failureMechanism, + assessmentSection); + var parentGroupContext = new WaveImpactAsphaltCoverWaveConditionsCalculationGroupContext(parentGroup, + failureMechanism, + assessmentSection); - // Call - using (ContextMenuStrip menu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl)) + var menuBuilderMock = mocks.StrictMock(); + using (mocks.Ordered()) { - // Assert - Assert.AreEqual(18, menu.Items.Count); + menuBuilderMock.Expect(mb => mb.AddImportItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddExportItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddRenameItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddDeleteItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCollapseAllItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddExpandAllItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddPropertiesItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.Build()).Return(null); + } - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuImportConfigurationIndex, - "&Importeren...", - "Importeer de gegevens vanuit een bestand.", - CoreCommonGuiResources.ImportIcon); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuExportConfigurationIndex, - "&Exporteren...", - "Exporteer de gegevens naar een bestand.", - CoreCommonGuiResources.ExportIcon); + using (var treeViewControl = new TreeViewControl()) + { + gui.Stub(cmp => cmp.Get(groupContext, treeViewControl)).Return(menuBuilderMock); + gui.Stub(g => g.MainWindow).Return(mocks.Stub()); + mocks.ReplayAll(); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddCalculationGroupIndexNestedGroup, - "&Map toevoegen", - "Voeg een nieuwe berekeningsmap toe aan deze berekeningsmap.", - RingtoetsCommonFormsResources.AddFolderIcon); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddCalculationIndexNestedGroup, - "Berekening &toevoegen", - "Voeg een nieuwe berekening toe aan deze berekeningsmap.", - RingtoetsCommonFormsResources.FailureMechanismIcon); + // Call + info.ContextMenuStrip(groupContext, parentGroupContext, treeViewControl); + } + // Assert + // Assert expectancies called in TearDown() + } - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuRenameCalculationGroundIndexNestedGroup, - "&Hernoemen", - "Wijzig de naam van dit element.", - CoreCommonGuiResources.RenameIcon); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuValidateAllIndexNestedGroup, - "Alles &valideren", - "Er zijn geen berekeningen om te valideren.", - RingtoetsCommonFormsResources.ValidateAllIcon, - false); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuCalculateAllIndexNestedGroup, - "Alles be&rekenen", - "Er zijn geen berekeningen om uit te voeren.", - RingtoetsCommonFormsResources.CalculateAllIcon, - false); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuClearOutputIndexNestedGroup, - "&Wis alle uitvoer...", - "Er zijn geen berekeningen met uitvoer om te wissen.", - RingtoetsCommonFormsResources.ClearIcon, - false); + [Test] + public void ContextMenuStrip_NestedCalculationGroup_AddCustomItems() + { + // Setup + var group = new CalculationGroup(); + var parentGroup = new CalculationGroup(); + var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); + var assessmentSection = mocks.Stub(); + var groupContext = new WaveImpactAsphaltCoverWaveConditionsCalculationGroupContext(group, + failureMechanism, + assessmentSection); + var parentGroupContext = new WaveImpactAsphaltCoverWaveConditionsCalculationGroupContext(parentGroup, + failureMechanism, + assessmentSection); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuRemoveElementIndexNestedGroup, - "Verwij&deren...", - "Verwijder dit element uit de boom.", - CoreCommonGuiResources.DeleteIcon); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuCollapseAllIndexNestedGroup, - "Alles i&nklappen", - "Klap dit element en alle onderliggende elementen in.", - CoreCommonGuiResources.CollapseAllIcon, - false); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuExpandAllIndexNestedGroup, - "Alles ui&tklappen", - "Klap dit element en alle onderliggende elementen uit.", - CoreCommonGuiResources.ExpandAllIcon, - false); + using (var treeViewControl = new TreeViewControl()) + { + gui.Stub(g => g.Get(groupContext, treeViewControl)).Return(menuBuilder); + gui.Stub(g => g.MainWindow).Return(mocks.Stub()); + mocks.ReplayAll(); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuPropertiesIndexNestedGroup, - "Ei&genschappen", - "Toon de eigenschappen in het Eigenschappenpaneel.", - CoreCommonGuiResources.PropertiesHS, - false); - - CollectionAssert.AllItemsAreInstancesOfType(new[] + // Call + using (ContextMenuStrip menu = info.ContextMenuStrip(groupContext, parentGroupContext, treeViewControl)) { - menu.Items[2], - menu.Items[5], - menu.Items[7], - menu.Items[10], - menu.Items[13], - menu.Items[16] - }, typeof(ToolStripSeparator)); + // Assert + Assert.AreEqual(19, menu.Items.Count); + + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddCalculationGroupIndexNestedGroup, + "&Map toevoegen", + "Voeg een nieuwe berekeningsmap toe aan deze berekeningsmap.", + RingtoetsCommonFormsResources.AddFolderIcon); + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddCalculationIndexNestedGroup, + "Berekening &toevoegen", + "Voeg een nieuwe berekening toe aan deze berekeningsmap.", + RingtoetsCommonFormsResources.FailureMechanismIcon); + + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuUpdateForeshoreProfileIndexNestedGroup, + "&Bijwerken voorlandprofielen...", + "De geselecteerde voorlandprofielen hebben geen wijzigingen om bij te werken.", + RingtoetsCommonFormsResources.UpdateItemIcon, + false); + + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuValidateAllIndexNestedGroup, + "Alles &valideren", + "Er zijn geen berekeningen om te valideren.", + RingtoetsCommonFormsResources.ValidateAllIcon, + false); + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuCalculateAllIndexNestedGroup, + "Alles be&rekenen", + "Er zijn geen berekeningen om uit te voeren.", + RingtoetsCommonFormsResources.CalculateAllIcon, + false); + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuClearOutputIndexNestedGroup, + "&Wis alle uitvoer...", + "Er zijn geen berekeningen met uitvoer om te wissen.", + RingtoetsCommonFormsResources.ClearIcon, + false); + } } } @@ -367,19 +477,15 @@ nodeData, treeViewControl); - var gui = mocks.Stub(); gui.Stub(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); - gui.Stub(cmp => cmp.ViewCommands).Return(mocks.Stub()); + gui.Stub(g => g.ViewCommands).Return(mocks.Stub()); + gui.Stub(g => g.MainWindow).Return(mocks.Stub()); mocks.ReplayAll(); - plugin.Gui = gui; - // Call using (ContextMenuStrip menu = info.ContextMenuStrip(nodeData, null, treeViewControl)) { // Assert - Assert.AreEqual(18, menu.Items.Count); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuImportConfigurationIndex, "&Importeren...", "Importeer de gegevens vanuit een bestand.", @@ -436,15 +542,6 @@ "Toon de eigenschappen in het Eigenschappenpaneel.", CoreCommonGuiResources.PropertiesHS, false); - CollectionAssert.AllItemsAreInstancesOfType(new[] - { - menu.Items[2], - menu.Items[4], - menu.Items[7], - menu.Items[10], - menu.Items[13], - menu.Items[16] - }, typeof(ToolStripSeparator)); } } } @@ -484,19 +581,15 @@ nodeData, treeViewControl); - var gui = mocks.Stub(); gui.Stub(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); - gui.Stub(cmp => cmp.ViewCommands).Return(mocks.Stub()); + gui.Stub(g => g.ViewCommands).Return(mocks.Stub()); + gui.Stub(g => g.MainWindow).Return(mocks.Stub()); mocks.ReplayAll(); - plugin.Gui = gui; - // Call using (ContextMenuStrip menu = info.ContextMenuStrip(nodeData, null, treeViewControl)) { // Assert - Assert.AreEqual(18, menu.Items.Count); - TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuImportConfigurationIndex, "&Importeren...", "Importeer de gegevens vanuit een bestand.", @@ -554,15 +647,6 @@ "Toon de eigenschappen in het Eigenschappenpaneel.", CoreCommonGuiResources.PropertiesHS, false); - CollectionAssert.AllItemsAreInstancesOfType(new[] - { - menu.Items[2], - menu.Items[4], - menu.Items[7], - menu.Items[10], - menu.Items[13], - menu.Items[16] - }, typeof(ToolStripSeparator)); } } } @@ -586,13 +670,10 @@ var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var gui = mocks.Stub(); - gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); - + gui.Stub(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Stub(g => g.MainWindow).Return(mocks.Stub()); mocks.ReplayAll(); - plugin.Gui = gui; - // Call using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl)) { @@ -627,13 +708,10 @@ var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var gui = mocks.Stub(); - gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); - + gui.Stub(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Stub(g => g.MainWindow).Return(mocks.Stub()); mocks.ReplayAll(); - plugin.Gui = gui; - // Call using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl)) { @@ -672,13 +750,10 @@ var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var gui = mocks.Stub(); - gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); - + gui.Stub(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Stub(g => g.MainWindow).Return(mocks.Stub()); mocks.ReplayAll(); - plugin.Gui = gui; - // Call using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl)) { @@ -721,13 +796,10 @@ var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var gui = mocks.Stub(); - gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); - + gui.Stub(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Stub(g => g.MainWindow).Return(mocks.Stub()); mocks.ReplayAll(); - plugin.Gui = gui; - // Call using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl)) { @@ -798,13 +870,10 @@ using (var treeViewControl = new TreeViewControl()) { - var gui = mocks.Stub(); - gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); - + gui.Stub(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Stub(g => g.MainWindow).Return(mocks.Stub()); mocks.ReplayAll(); - plugin.Gui = gui; - using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl)) { // Call @@ -864,16 +933,11 @@ using (var treeViewControl = new TreeViewControl()) { - var mainWindow = mocks.Stub(); + gui.Stub(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Stub(g => g.MainWindow).Return(mocks.Stub()); - var gui = mocks.Stub(); - gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); - gui.Stub(g => g.MainWindow).Return(mainWindow); - mocks.ReplayAll(); - plugin.Gui = gui; - using (new HydraRingCalculatorFactoryConfig()) using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl)) { @@ -922,16 +986,11 @@ using (var treeViewControl = new TreeViewControl()) { - var mainWindow = mocks.Stub(); + gui.Stub(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Stub(g => g.MainWindow).Return(mocks.Stub()); - var gui = mocks.Stub(); - gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); - gui.Stub(g => g.MainWindow).Return(mainWindow); - mocks.ReplayAll(); - plugin.Gui = gui; - using (new HydraRingCalculatorFactoryConfig()) using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl)) { @@ -972,16 +1031,11 @@ using (var treeViewControl = new TreeViewControl()) { - var mainWindow = mocks.Stub(); + gui.Stub(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Stub(g => g.MainWindow).Return(mocks.Stub()); - var gui = mocks.Stub(); - gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); - gui.Stub(g => g.MainWindow).Return(mainWindow); - mocks.ReplayAll(); - plugin.Gui = gui; - using (new HydraRingCalculatorFactoryConfig()) using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl)) { @@ -1049,16 +1103,11 @@ using (var treeViewControl = new TreeViewControl()) { - var mainWindow = mocks.Stub(); + gui.Stub(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Stub(g => g.MainWindow).Return(mocks.Stub()); - var gui = mocks.Stub(); - gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); - gui.Stub(g => g.MainWindow).Return(mainWindow); - mocks.ReplayAll(); - plugin.Gui = gui; - using (new HydraRingCalculatorFactoryConfig()) using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl)) { @@ -1096,15 +1145,13 @@ var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var gui = mocks.Stub(); - gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Stub(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Stub(g => g.MainWindow).Return(mocks.Stub()); var observer = mocks.StrictMock(); observer.Expect(o => o.UpdateObserver()); mocks.ReplayAll(); - plugin.Gui = gui; - var calculationItem = new CalculationGroup { Name = "Nieuwe map" @@ -1167,17 +1214,14 @@ assessmentSection); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var mainWindow = mocks.Stub(); var viewCommandsMock = mocks.StrictMock(); - var gui = mocks.Stub(); - gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); - gui.Stub(cmp => cmp.MainWindow).Return(mainWindow); - gui.Stub(cmp => cmp.ViewCommands).Return(viewCommandsMock); + gui.Stub(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Stub(g => g.MainWindow).Return(mocks.Stub()); + gui.Stub(g => g.ViewCommands).Return(viewCommandsMock); mocks.ReplayAll(); - plugin.Gui = gui; nodeData.Attach(observerMock); HydraulicBoundaryLocationSelectionDialog dialog = null; @@ -1233,17 +1277,14 @@ assessmentSectionStub); var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var mainWindow = mocks.Stub(); var viewCommandsMock = mocks.StrictMock(); - var gui = mocks.Stub(); - gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); - gui.Stub(cmp => cmp.MainWindow).Return(mainWindow); - gui.Stub(cmp => cmp.ViewCommands).Return(viewCommandsMock); + gui.Stub(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Stub(g => g.MainWindow).Return(mocks.Stub()); + gui.Stub(g => g.ViewCommands).Return(viewCommandsMock); mocks.ReplayAll(); - plugin.Gui = gui; nodeData.Attach(observerMock); HydraulicBoundaryLocationSelectionDialog dialog = null; @@ -1326,14 +1367,11 @@ context, treeViewControl); - var gui = mocks.Stub(); gui.Stub(g => g.ViewCommands).Return(viewCommands); gui.Stub(g => g.Get(context, treeViewControl)).Return(menuBuilderMock); - + gui.Stub(g => g.MainWindow).Return(mocks.Stub()); mocks.ReplayAll(); - plugin.Gui = gui; - // When using (ContextMenuStrip contextMenu = info.ContextMenuStrip(context, null, treeViewControl)) { @@ -1377,14 +1415,11 @@ context, treeViewControl); - var gui = mocks.Stub(); gui.Stub(g => g.ViewCommands).Return(viewCommands); gui.Stub(g => g.Get(context, treeViewControl)).Return(menuBuilderMock); - + gui.Stub(g => g.MainWindow).Return(mocks.Stub()); mocks.ReplayAll(); - plugin.Gui = gui; - using (ContextMenuStrip contextMenu = info.ContextMenuStrip(context, null, treeViewControl)) { // Precondition