Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionOutwardsWaveHeightLocationsContextTreeNodeInfoTest.cs =================================================================== diff -u -rf5bac1f11df4ee4881109371c50120763e303642 -rbd216dc28f22e55bd7e8347861352bc1aca90030 --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionOutwardsWaveHeightLocationsContextTreeNodeInfoTest.cs (.../GrassCoverErosionOutwardsWaveHeightLocationsContextTreeNodeInfoTest.cs) (revision f5bac1f11df4ee4881109371c50120763e303642) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionOutwardsWaveHeightLocationsContextTreeNodeInfoTest.cs (.../GrassCoverErosionOutwardsWaveHeightLocationsContextTreeNodeInfoTest.cs) (revision bd216dc28f22e55bd7e8347861352bc1aca90030) @@ -40,11 +40,9 @@ using Ringtoets.Common.Data.TestUtil; using Ringtoets.GrassCoverErosionOutwards.Data; using Ringtoets.GrassCoverErosionOutwards.Forms.PresentationObjects; -using Ringtoets.GrassCoverErosionOutwards.Forms.Properties; using Ringtoets.HydraRing.Calculation.Calculator.Factory; using Ringtoets.HydraRing.Calculation.TestUtil.Calculator; using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; -using CoreCommonGuiResources = Core.Common.Gui.Properties.Resources; namespace Ringtoets.GrassCoverErosionOutwards.Plugin.Test.TreeNodeInfos { @@ -182,25 +180,31 @@ } [Test] - public void ContextMenuStrip_WithoutHydraulicDatabase_ReturnsContextMenuWithCommonItems() + public void ContextMenuStrip_HydraulicBoundaryDatabaseNotValid_ContextMenuItemCalculateAllDisabledAndTooltipSet() { // Setup var assessmentSectionMock = mockRepository.Stub(); + assessmentSectionMock.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); var applicationFeatureCommandHandler = mockRepository.Stub(); var importCommandHandler = mockRepository.Stub(); var exportCommandHandler = mockRepository.Stub(); var viewCommandsHandler = mockRepository.Stub(); + viewCommandsHandler.Stub(vch => vch.CanOpenViewFor(null)).IgnoreArguments().Return(true); using (var treeViewControl = new TreeViewControl()) { using (var plugin = new GrassCoverErosionOutwardsPlugin()) { TreeNodeInfo info = GetInfo(plugin); + var context = new GrassCoverErosionOutwardsWaveHeightLocationsContext( new ObservableList(), assessmentSectionMock, - new GrassCoverErosionOutwardsFailureMechanism()); + new GrassCoverErosionOutwardsFailureMechanism + { + Contribution = 5 + }); var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, importCommandHandler, @@ -220,49 +224,41 @@ using (ContextMenuStrip menu = info.ContextMenuStrip(context, null, treeViewControl)) { // Assert - Assert.AreEqual(5, menu.Items.Count); + ToolStripItem contextMenuItem = menu.Items[contextMenuRunWaveHeightCalculationsIndex]; - TestHelper.AssertContextMenuStripContainsItem(menu, - 2, - RingtoetsCommonFormsResources.Calculate_all, - Resources.GrassCoverErosionOutwards_WaveHeight_No_HRD_To_Calculate, - RingtoetsCommonFormsResources.CalculateAllIcon, - false); - TestHelper.AssertContextMenuStripContainsItem(menu, - 4, - CoreCommonGuiResources.Properties, - CoreCommonGuiResources.Properties_ToolTip, - CoreCommonGuiResources.PropertiesHS, - false); - - CollectionAssert.AllItemsAreInstancesOfType(new[] - { - menu.Items[1], - menu.Items[3] - }, typeof(ToolStripSeparator)); + Assert.AreEqual("Alles be&rekenen", contextMenuItem.Text); + StringAssert.Contains("Herstellen van de verbinding met de hydraulische randvoorwaardendatabase is mislukt.", contextMenuItem.ToolTipText); + TestHelper.AssertImagesAreEqual(RingtoetsCommonFormsResources.CalculateAllIcon, contextMenuItem.Image); + Assert.IsFalse(contextMenuItem.Enabled); } } } mockRepository.VerifyAll(); } [Test] - public void ContextMenuStrip_WithHydraulicDatabase_CalculateAllAndTooltipEnabled() + public void ContextMenuStrip_FailureMechanismContributionZero_ContextMenuItemCalculateAllDisabledAndTooltipSet() { // Setup var assessmentSectionMock = mockRepository.Stub(); - assessmentSectionMock.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); + assessmentSectionMock.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + FilePath = Path.Combine(TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Common.IO, "HydraulicBoundaryDatabaseImporter"), "complete.sqlite"), + Version = "1.0" + }; var applicationFeatureCommandHandler = mockRepository.Stub(); var importCommandHandler = mockRepository.Stub(); var exportCommandHandler = mockRepository.Stub(); var viewCommandsHandler = mockRepository.Stub(); + viewCommandsHandler.Stub(vch => vch.CanOpenViewFor(null)).IgnoreArguments().Return(true); using (var treeViewControl = new TreeViewControl()) { using (var plugin = new GrassCoverErosionOutwardsPlugin()) { TreeNodeInfo info = GetInfo(plugin); + var context = new GrassCoverErosionOutwardsWaveHeightLocationsContext( new ObservableList(), assessmentSectionMock, @@ -286,25 +282,72 @@ using (ContextMenuStrip menu = info.ContextMenuStrip(context, null, treeViewControl)) { // Assert - Assert.AreEqual(5, menu.Items.Count); - TestHelper.AssertContextMenuStripContainsItem(menu, - 2, - RingtoetsCommonFormsResources.Calculate_all, - Resources.GrassCoverErosionOutwards_WaveHeight_Calculate_All_ToolTip, - RingtoetsCommonFormsResources.CalculateAllIcon); - TestHelper.AssertContextMenuStripContainsItem(menu, - 4, - CoreCommonGuiResources.Properties, - CoreCommonGuiResources.Properties_ToolTip, - CoreCommonGuiResources.PropertiesHS, + contextMenuRunWaveHeightCalculationsIndex, + "Alles be&rekenen", + "De bijdrage van dit toetsspoor is nul.", + RingtoetsCommonFormsResources.CalculateAllIcon, false); + } + } + } + mockRepository.VerifyAll(); + } - CollectionAssert.AllItemsAreInstancesOfType(new[] + [Test] + public void ContextMenuStrip_AllRequiredInputSet_ContextMenuItemCalculateAllEnabled() + { + // Setup + var assessmentSectionMock = mockRepository.Stub(); + assessmentSectionMock.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + FilePath = Path.Combine(TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Common.IO, "HydraulicBoundaryDatabaseImporter"), "complete.sqlite"), + Version = "1.0" + }; + + var applicationFeatureCommandHandler = mockRepository.Stub(); + var importCommandHandler = mockRepository.Stub(); + var exportCommandHandler = mockRepository.Stub(); + var viewCommandsHandler = mockRepository.Stub(); + viewCommandsHandler.Stub(vch => vch.CanOpenViewFor(null)).IgnoreArguments().Return(true); + + using (var treeViewControl = new TreeViewControl()) + { + using (var plugin = new GrassCoverErosionOutwardsPlugin()) + { + TreeNodeInfo info = GetInfo(plugin); + + var context = new GrassCoverErosionOutwardsWaveHeightLocationsContext( + new ObservableList(), + assessmentSectionMock, + new GrassCoverErosionOutwardsFailureMechanism { - menu.Items[1], - menu.Items[3] - }, typeof(ToolStripSeparator)); + Contribution = 5 + }); + + var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, + importCommandHandler, + exportCommandHandler, + viewCommandsHandler, + context, + treeViewControl); + + var gui = mockRepository.StrictMock(); + gui.Expect(cmp => cmp.Get(context, treeViewControl)).Return(menuBuilder); + + mockRepository.ReplayAll(); + + plugin.Gui = gui; + + // Call + using (ContextMenuStrip menu = info.ContextMenuStrip(context, null, treeViewControl)) + { + // Assert + TestHelper.AssertContextMenuStripContainsItem(menu, + contextMenuRunWaveHeightCalculationsIndex, + "Alles be&rekenen", + "Alle golfhoogtes bij doorsnede-eis berekenen.", + RingtoetsCommonFormsResources.CalculateAllIcon); } } } @@ -319,7 +362,7 @@ var guiMock = mockRepository.DynamicMock(); var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism { - Contribution = 1 + Contribution = 5 }; IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub( failureMechanism, mockRepository, Path.Combine(testDataPath, "HRD ijsselmeer.sqlite")); @@ -366,7 +409,7 @@ var guiMock = mockRepository.DynamicMock(); var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism { - Contribution = 1 + Contribution = 5 }; IAssessmentSection assessmentSectionStub = AssessmentSectionHelper.CreateAssessmentSectionStub( failureMechanism, mockRepository, Path.Combine(testDataPath, "HRD ijsselmeer.sqlite")); @@ -375,7 +418,7 @@ var context = new GrassCoverErosionOutwardsWaveHeightLocationsContext(new ObservableList { grassCoverErosionOutwardsHydraulicBoundaryLocation - }, assessmentSectionStub, new GrassCoverErosionOutwardsFailureMechanism()); + }, assessmentSectionStub, failureMechanism); var observer = mockRepository.StrictMock(); context.Attach(observer);