Index: Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/TreeNodeInfos/WaterLevelCalculationsForNormTargetProbabilitiesGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -r9b7cadea8b8f2e8a9eab25d6af2d7c3a71cbfe0f -r14c5f66501f9265a20bc042c0440d06d0df771fd --- Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/TreeNodeInfos/WaterLevelCalculationsForNormTargetProbabilitiesGroupContextTreeNodeInfoTest.cs (.../WaterLevelCalculationsForNormTargetProbabilitiesGroupContextTreeNodeInfoTest.cs) (revision 9b7cadea8b8f2e8a9eab25d6af2d7c3a71cbfe0f) +++ Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/TreeNodeInfos/WaterLevelCalculationsForNormTargetProbabilitiesGroupContextTreeNodeInfoTest.cs (.../WaterLevelCalculationsForNormTargetProbabilitiesGroupContextTreeNodeInfoTest.cs) (revision 14c5f66501f9265a20bc042c0440d06d0df771fd) @@ -206,6 +206,57 @@ } [Test] + public void ContextMenuStrip_Always_AddCustomItems() + { + // Setup + IAssessmentSection assessmentSection = new AssessmentSectionStub(); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + var nodeData = new WaterLevelCalculationsForNormTargetProbabilitiesGroupContext(new ObservableList(), + assessmentSection); + + var mockRepository = new MockRepository(); + + using (var treeViewControl = new TreeViewControl()) + { + var gui = mockRepository.Stub(); + gui.Stub(g => g.ProjectOpened += null).IgnoreArguments(); + gui.Stub(g => g.ProjectOpened -= null).IgnoreArguments(); + gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Stub(cmp => cmp.MainWindow).Return(mockRepository.Stub()); + mockRepository.ReplayAll(); + + using (var plugin = new RiskeerPlugin()) + { + TreeNodeInfo info = GetInfo(plugin); + + plugin.Gui = gui; + + // Call + using (ContextMenuStrip menu = info.ContextMenuStrip(nodeData, assessmentSection, treeViewControl)) + { + // Assert + Assert.AreEqual(6, menu.Items.Count); + + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuRunWaterLevelCalculationsIndex, + "Alles be&rekenen", + "Er is geen hydraulische belastingendatabase geïmporteerd.", + RiskeerCommonFormsResources.CalculateAllIcon, + false); + + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuClearIllustrationPointsIndex, + "Wis alle illustratiepunten...", + "Er zijn geen berekeningen met illustratiepunten om te wissen.", + RiskeerCommonFormsResources.ClearIllustrationPointsIcon, + false); + } + } + } + + // Assert + mockRepository.VerifyAll(); + } + + [Test] public void ContextMenuStrip_HydraulicBoundaryDatabaseNotLinked_ContextMenuItemCalculateAllDisabledAndTooltipSet() { // Setup Index: Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/TreeNodeInfos/WaterLevelCalculationsForUserDefinedTargetProbabilitiesGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -r9b7cadea8b8f2e8a9eab25d6af2d7c3a71cbfe0f -r14c5f66501f9265a20bc042c0440d06d0df771fd --- Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/TreeNodeInfos/WaterLevelCalculationsForUserDefinedTargetProbabilitiesGroupContextTreeNodeInfoTest.cs (.../WaterLevelCalculationsForUserDefinedTargetProbabilitiesGroupContextTreeNodeInfoTest.cs) (revision 9b7cadea8b8f2e8a9eab25d6af2d7c3a71cbfe0f) +++ Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/TreeNodeInfos/WaterLevelCalculationsForUserDefinedTargetProbabilitiesGroupContextTreeNodeInfoTest.cs (.../WaterLevelCalculationsForUserDefinedTargetProbabilitiesGroupContextTreeNodeInfoTest.cs) (revision 14c5f66501f9265a20bc042c0440d06d0df771fd) @@ -207,6 +207,62 @@ } [Test] + public void ContextMenuStrip_Always_AddCustomItems() + { + // Setup + IAssessmentSection assessmentSection = new AssessmentSectionStub(); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + var nodeData = new WaterLevelCalculationsForUserDefinedTargetProbabilitiesGroupContext(new ObservableList(), + assessmentSection); + + var mockRepository = new MockRepository(); + + using (var treeViewControl = new TreeViewControl()) + { + var gui = mockRepository.Stub(); + gui.Stub(g => g.ProjectOpened += null).IgnoreArguments(); + gui.Stub(g => g.ProjectOpened -= null).IgnoreArguments(); + gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Stub(cmp => cmp.MainWindow).Return(mockRepository.Stub()); + mockRepository.ReplayAll(); + + using (var plugin = new RiskeerPlugin()) + { + TreeNodeInfo info = GetInfo(plugin); + + plugin.Gui = gui; + + // Call + using (ContextMenuStrip menu = info.ContextMenuStrip(nodeData, assessmentSection, treeViewControl)) + { + // Assert + Assert.AreEqual(8, menu.Items.Count); + + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddTargetProbabilityIndex, + "Doelkans toevoegen", + "Voeg een nieuwe doelkans toe aan deze map met waterstanden.", + RiskeerCommonFormsResources.GenericInputOutputIcon); + + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuRunWaterLevelCalculationsIndex, + "Alles be&rekenen", + "Er is geen hydraulische belastingendatabase geïmporteerd.", + RiskeerCommonFormsResources.CalculateAllIcon, + false); + + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuClearIllustrationPointsIndex, + "Wis alle illustratiepunten...", + "Er zijn geen berekeningen met illustratiepunten om te wissen.", + RiskeerCommonFormsResources.ClearIllustrationPointsIcon, + false); + } + } + } + + // Assert + mockRepository.VerifyAll(); + } + + [Test] public void ContextMenuStrip_ClickOnAddTargetProbabilityItem_CalculationsForTargetProbabilityAddedAndObserversNotified() { // Given Index: Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/TreeNodeInfos/WaveHeightCalculationsForUserDefinedTargetProbabilitiesGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -r9b7cadea8b8f2e8a9eab25d6af2d7c3a71cbfe0f -r14c5f66501f9265a20bc042c0440d06d0df771fd --- Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/TreeNodeInfos/WaveHeightCalculationsForUserDefinedTargetProbabilitiesGroupContextTreeNodeInfoTest.cs (.../WaveHeightCalculationsForUserDefinedTargetProbabilitiesGroupContextTreeNodeInfoTest.cs) (revision 9b7cadea8b8f2e8a9eab25d6af2d7c3a71cbfe0f) +++ Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/TreeNodeInfos/WaveHeightCalculationsForUserDefinedTargetProbabilitiesGroupContextTreeNodeInfoTest.cs (.../WaveHeightCalculationsForUserDefinedTargetProbabilitiesGroupContextTreeNodeInfoTest.cs) (revision 14c5f66501f9265a20bc042c0440d06d0df771fd) @@ -207,6 +207,62 @@ } [Test] + public void ContextMenuStrip_Always_AddCustomItems() + { + // Setup + IAssessmentSection assessmentSection = new AssessmentSectionStub(); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + var nodeData = new WaveHeightCalculationsForUserDefinedTargetProbabilitiesGroupContext(new ObservableList(), + assessmentSection); + + var mockRepository = new MockRepository(); + + using (var treeViewControl = new TreeViewControl()) + { + var gui = mockRepository.Stub(); + gui.Stub(g => g.ProjectOpened += null).IgnoreArguments(); + gui.Stub(g => g.ProjectOpened -= null).IgnoreArguments(); + gui.Stub(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Stub(cmp => cmp.MainWindow).Return(mockRepository.Stub()); + mockRepository.ReplayAll(); + + using (var plugin = new RiskeerPlugin()) + { + TreeNodeInfo info = GetInfo(plugin); + + plugin.Gui = gui; + + // Call + using (ContextMenuStrip menu = info.ContextMenuStrip(nodeData, assessmentSection, treeViewControl)) + { + // Assert + Assert.AreEqual(8, menu.Items.Count); + + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuAddTargetProbabilityIndex, + "Doelkans toevoegen", + "Voeg een nieuwe doelkans toe aan deze map met golfhoogten.", + RiskeerCommonFormsResources.GenericInputOutputIcon); + + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuRunWaveHeightCalculationsIndex, + "Alles be&rekenen", + "Er is geen hydraulische belastingendatabase geïmporteerd.", + RiskeerCommonFormsResources.CalculateAllIcon, + false); + + TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuClearIllustrationPointsIndex, + "Wis alle illustratiepunten...", + "Er zijn geen berekeningen met illustratiepunten om te wissen.", + RiskeerCommonFormsResources.ClearIllustrationPointsIcon, + false); + } + } + } + + // Assert + mockRepository.VerifyAll(); + } + + [Test] public void ContextMenuStrip_ClickOnAddTargetProbabilityItem_CalculationsForTargetProbabilityAddedAndObserversNotified() { // Given