Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/GrassCoverErosionInwardsPluginTest.cs
===================================================================
diff -u -r6b9fda141298524c0910937dd090d82be420c52b -rc3a5f6f1b7c5a89cf8d81b52b48eea471b3a4ffe
--- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/GrassCoverErosionInwardsPluginTest.cs (.../GrassCoverErosionInwardsPluginTest.cs) (revision 6b9fda141298524c0910937dd090d82be420c52b)
+++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Plugin.Test/GrassCoverErosionInwardsPluginTest.cs (.../GrassCoverErosionInwardsPluginTest.cs) (revision c3a5f6f1b7c5a89cf8d81b52b48eea471b3a4ffe)
@@ -25,7 +25,6 @@
using Core.Common.Gui.TestUtil;
using NUnit.Framework;
using Ringtoets.Common.Data.DikeProfiles;
-using Ringtoets.Common.Data.Probability;
using Ringtoets.Common.Forms.PresentationObjects;
using Ringtoets.GrassCoverErosionInwards.Data;
using Ringtoets.GrassCoverErosionInwards.Forms.PresentationObjects;
Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/Ringtoets.StabilityPointStructures.Plugin.csproj
===================================================================
diff -u -r2a1fab6b1433b01ef0dbb2c79a35430dd7efe0bd -rc3a5f6f1b7c5a89cf8d81b52b48eea471b3a4ffe
--- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/Ringtoets.StabilityPointStructures.Plugin.csproj (.../Ringtoets.StabilityPointStructures.Plugin.csproj) (revision 2a1fab6b1433b01ef0dbb2c79a35430dd7efe0bd)
+++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/Ringtoets.StabilityPointStructures.Plugin.csproj (.../Ringtoets.StabilityPointStructures.Plugin.csproj) (revision c3a5f6f1b7c5a89cf8d81b52b48eea471b3a4ffe)
@@ -90,6 +90,16 @@
Ringtoets.Common.Service
False
+
+ {70f8cc9c-5bc8-4fb2-b201-eae7fa8088c2}
+ Ringtoets.HydraRing.Data
+ False
+
+
+ {B69D5B6C-6E14-4FA9-9EBC-8F97678CDB70}
+ Ringtoets.HydraRing.IO
+ False
+
{3D4B9740-8348-4434-8D77-B611FC6EE57F}
Ringtoets.StabilityPointStructures.Data
Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/StabilityPointStructuresPlugin.cs
===================================================================
diff -u -r2efa0fbe22fee2482e1583a7d6f5ccfdf168f660 -rc3a5f6f1b7c5a89cf8d81b52b48eea471b3a4ffe
--- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/StabilityPointStructuresPlugin.cs (.../StabilityPointStructuresPlugin.cs) (revision 2efa0fbe22fee2482e1583a7d6f5ccfdf168f660)
+++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Plugin/StabilityPointStructuresPlugin.cs (.../StabilityPointStructuresPlugin.cs) (revision c3a5f6f1b7c5a89cf8d81b52b48eea471b3a4ffe)
@@ -33,6 +33,7 @@
using Ringtoets.Common.Forms.Helpers;
using Ringtoets.Common.Forms.PresentationObjects;
using Ringtoets.Common.Forms.TreeNodeInfos;
+using Ringtoets.HydraRing.IO;
using Ringtoets.StabilityPointStructures.Data;
using Ringtoets.StabilityPointStructures.Forms.PresentationObjects;
using Ringtoets.StabilityPointStructures.Forms.Views;
@@ -157,8 +158,26 @@
private static string ValidateAllDataAvailableAndGetErrorMessage(IAssessmentSection assessmentSection, StabilityPointStructuresFailureMechanism failureMechanism)
{
+ if (!failureMechanism.Sections.Any())
+ {
+ return RingtoetsCommonFormsResources.Plugin_AllDataAvailable_No_failure_mechanism_sections_imported;
+ }
+
+ if (assessmentSection.HydraulicBoundaryDatabase == null)
+ {
+ return RingtoetsCommonFormsResources.Plugin_AllDataAvailable_No_hydraulic_boundary_database_imported;
+ }
+
+ var validationProblem = HydraulicDatabaseHelper.ValidatePathForCalculation(assessmentSection.HydraulicBoundaryDatabase.FilePath);
+ if (!string.IsNullOrEmpty(validationProblem))
+ {
+ return string.Format(RingtoetsCommonServiceResources.Hydraulic_boundary_database_connection_failed_0_,
+ validationProblem);
+ }
+
return null;
}
+
private static void ValidateAll(IEnumerable calculations, IAssessmentSection assessmentSection) {}
private static void CalculateAll(StabilityPointStructuresFailureMechanismContext context) {}
private static void CalculateAll(CalculationGroup group, StabilityPointStructuresCalculationGroupContext context) {}
@@ -220,10 +239,11 @@
return builder.AddToggleRelevancyOfFailureMechanismItem(failureMechanismContext, RemoveAllViewsForItem)
.AddSeparator()
- .AddValidateAllCalculationsInFailureMechanismItem(failureMechanismContext,
- c => ValidateAll(c.WrappedData.Calculations.OfType(), c.Parent),
- ValidateAllDataAvailableAndGetErrorMessageForCalculationsInFailureMechanism)
- .AddPerformAllCalculationsInFailureMechanismItem(failureMechanismContext, CalculateAll)
+ .AddValidateAllCalculationsInFailureMechanismItem(
+ failureMechanismContext,
+ c => ValidateAll(c.WrappedData.Calculations.OfType(), c.Parent),
+ ValidateAllDataAvailableAndGetErrorMessageForCalculationsInFailureMechanism)
+ .AddPerformAllCalculationsInFailureMechanismItem(failureMechanismContext, CalculateAll, ValidateAllDataAvailableAndGetErrorMessageForCalculationsInFailureMechanism)
.AddClearAllCalculationOutputInFailureMechanismItem(failureMechanismContext.WrappedData)
.AddSeparator()
.AddExpandAllItem()
@@ -251,7 +271,7 @@
.Build();
}
- private string ValidateAllDataAvailableAndGetErrorMessageForCalculationsInFailureMechanism(StabilityPointStructuresFailureMechanismContext context)
+ private static string ValidateAllDataAvailableAndGetErrorMessageForCalculationsInFailureMechanism(StabilityPointStructuresFailureMechanismContext context)
{
return ValidateAllDataAvailableAndGetErrorMessage(context.Parent, context.WrappedData);
}
@@ -317,8 +337,9 @@
builder.AddSeparator()
.AddValidateAllCalculationsInGroupItem(context,
- c => ValidateAll(c.WrappedData.GetCalculations().OfType(), c.AssessmentSection))
- .AddPerformAllCalculationsInGroupItem(group, context, CalculateAll)
+ c => ValidateAll(c.WrappedData.GetCalculations().OfType(), c.AssessmentSection),
+ ValidateAllDataAvailableAndGetErrorMessageForCalculationsInGroup)
+ .AddPerformAllCalculationsInGroupItem(group, context, CalculateAll, ValidateAllDataAvailableAndGetErrorMessageForCalculationsInGroup)
.AddClearAllCalculationOutputInGroupItem(group)
.AddSeparator();
@@ -366,6 +387,11 @@
context.WrappedData.NotifyObservers();
}
+ private static string ValidateAllDataAvailableAndGetErrorMessageForCalculationsInGroup(StabilityPointStructuresCalculationGroupContext context)
+ {
+ return ValidateAllDataAvailableAndGetErrorMessage(context.AssessmentSection, context.FailureMechanism);
+ }
+
#endregion
#region StabilityPointStructuresCalculationContext TreeNodeInfo
@@ -400,7 +426,7 @@
StabilityPointStructuresCalculation calculation = context.WrappedData;
return builder.AddValidateCalculationItem(context, delegate { }, ValidateAllDataAvailableAndGetErrorMessageForCalculation)
- .AddPerformCalculationItem(calculation, context, Calculate)
+ .AddPerformCalculationItem(calculation, context, Calculate, ValidateAllDataAvailableAndGetErrorMessageForCalculation)
.AddClearCalculationOutputItem(calculation)
.AddSeparator()
.AddRenameItem()
Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Forms.Test/TreeNodeInfos/StabilityPointStructuresFailureMechanismContextTreeNodeInfoTest.cs
===================================================================
diff -u -rc7cb9812ba255ba88d28b65f1a146dcf7454f63d -rc3a5f6f1b7c5a89cf8d81b52b48eea471b3a4ffe
--- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Forms.Test/TreeNodeInfos/StabilityPointStructuresFailureMechanismContextTreeNodeInfoTest.cs (.../StabilityPointStructuresFailureMechanismContextTreeNodeInfoTest.cs) (revision c7cb9812ba255ba88d28b65f1a146dcf7454f63d)
+++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Forms.Test/TreeNodeInfos/StabilityPointStructuresFailureMechanismContextTreeNodeInfoTest.cs (.../StabilityPointStructuresFailureMechanismContextTreeNodeInfoTest.cs) (revision c3a5f6f1b7c5a89cf8d81b52b48eea471b3a4ffe)
@@ -19,8 +19,10 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System.IO;
using System.Linq;
using System.Windows.Forms;
+using Core.Common.Base.Geometry;
using Core.Common.Controls.TreeView;
using Core.Common.Gui;
using Core.Common.Gui.Commands;
@@ -31,12 +33,15 @@
using Rhino.Mocks;
using Ringtoets.Common.Data;
using Ringtoets.Common.Data.AssessmentSection;
+using Ringtoets.Common.Data.FailureMechanism;
using Ringtoets.Common.Forms.PresentationObjects;
+using Ringtoets.HydraRing.Data;
using Ringtoets.StabilityPointStructures.Data;
using Ringtoets.StabilityPointStructures.Forms.PresentationObjects;
using Ringtoets.StabilityPointStructures.Plugin;
using CoreCommonGuiResources = Core.Common.Gui.Properties.Resources;
using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources;
+using RingtoetsCommonServicesResources = Ringtoets.Common.Service.Properties.Resources;
namespace Ringtoets.StabilityPointStructures.Forms.Test.TreeNodeInfos
{
@@ -48,6 +53,7 @@
private const int contextMenuValidateAllIndex = 2;
private const int contextMenuCalculateAllIndex = 3;
private const int contextMenuClearAllIndex = 4;
+ private readonly string testDataPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.HydraRing.IO, "HydraulicBoundaryLocationReader");
private MockRepository mocksRepository;
@@ -91,7 +97,7 @@
public void ChildNodeObjects_FailureMechanismIsRelevant_ReturnChildDataNodes()
{
// Setup
- var assessmentSectionMock = mocksRepository.StrictMock();
+ var assessmentSectionMock = mocksRepository.Stub();
mocksRepository.ReplayAll();
var failureMechanism = new StabilityPointStructuresFailureMechanism();
@@ -143,7 +149,7 @@
public void ChildNodeObjects_FailureMechanismIsNotRelevant_ReturnOnlyFailureMechanismComments()
{
// Setup
- var assessmentSectionMock = mocksRepository.StrictMock();
+ var assessmentSectionMock = mocksRepository.Stub();
mocksRepository.ReplayAll();
var failureMechanism = new StabilityPointStructuresFailureMechanism
@@ -172,7 +178,7 @@
{
// Setup
var failureMechanism = new StabilityPointStructuresFailureMechanism();
- var assessmentSectionMock = mocksRepository.StrictMock();
+ var assessmentSectionMock = mocksRepository.Stub();
var failureMechanismContext = new StabilityPointStructuresFailureMechanismContext(failureMechanism, assessmentSectionMock);
var guiMock = mocksRepository.StrictMock();
var menuBuilderMock = mocksRepository.StrictMock();
@@ -214,7 +220,7 @@
{
IsRelevant = false
};
- var assessmentSectionMock = mocksRepository.StrictMock();
+ var assessmentSectionMock = mocksRepository.Stub();
var failureMechanismContext = new StabilityPointStructuresFailureMechanismContext(failureMechanism, assessmentSectionMock);
var guiMock = mocksRepository.StrictMock();
var menuBuilderMock = mocksRepository.StrictMock();
@@ -249,7 +255,7 @@
using (var plugin = new StabilityPointStructuresPlugin())
using (var treeView = new TreeViewControl())
{
- var assessmentSectionMock = mocksRepository.StrictMock();
+ var assessmentSectionMock = mocksRepository.Stub();
var failureMechanism = new StabilityPointStructuresFailureMechanism();
var failureMechanismContext = new StabilityPointStructuresFailureMechanismContext(failureMechanism, assessmentSectionMock);
var menuBuilder = new CustomItemsOnlyContextMenuBuilder();
@@ -305,7 +311,7 @@
using (var plugin = new StabilityPointStructuresPlugin())
using (var treeView = new TreeViewControl())
{
- var assessmentSectionMock = mocksRepository.StrictMock();
+ var assessmentSectionMock = mocksRepository.Stub();
var failureMechanism = new StabilityPointStructuresFailureMechanism
{
IsRelevant = false
@@ -343,7 +349,7 @@
{
// Setup
var failureMechanism = new StabilityPointStructuresFailureMechanism();
- var assessmentSectionMock = mocksRepository.StrictMock();
+ var assessmentSectionMock = mocksRepository.Stub();
var failureMechanismContext = new StabilityPointStructuresFailureMechanismContext(failureMechanism, assessmentSectionMock);
var viewCommandsMock = mocksRepository.StrictMock();
var menuBuilder = new CustomItemsOnlyContextMenuBuilder();
@@ -381,7 +387,7 @@
{
IsRelevant = false
};
- var assessmentSectionMock = mocksRepository.StrictMock();
+ var assessmentSectionMock = mocksRepository.Stub();
var failureMechanismContext = new StabilityPointStructuresFailureMechanismContext(failureMechanism, assessmentSectionMock);
var menuBuilder = new CustomItemsOnlyContextMenuBuilder();
var guiMock = mocksRepository.StrictMock();
@@ -407,6 +413,281 @@
mocksRepository.VerifyAll();
}
+ [Test]
+ public void ContextMenuStrip_NoFailureMechanismSections_ContextMenuItemCalculateAllDisabledAndTooltipSet()
+ {
+ // Setup
+ var guiMock = mocksRepository.StrictMock();
+ var failureMechanism = new StabilityPointStructuresFailureMechanism();
+ failureMechanism.CalculationsGroup.Children.Add(new StabilityPointStructuresCalculation());
+ var assessmentSectionMock = mocksRepository.Stub();
+
+ var nodeData = new StabilityPointStructuresFailureMechanismContext(failureMechanism, assessmentSectionMock);
+ var menuBuilder = new CustomItemsOnlyContextMenuBuilder();
+
+ using (var plugin = new StabilityPointStructuresPlugin())
+ using (var treeViewControl = new TreeViewControl())
+ {
+ guiMock.Expect(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder);
+ mocksRepository.ReplayAll();
+
+ var info = GetInfo(plugin);
+ plugin.Gui = guiMock;
+
+ // Call
+ using (ContextMenuStrip menu = info.ContextMenuStrip(nodeData, null, treeViewControl))
+ {
+ // Assert
+ TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuCalculateAllIndex,
+ RingtoetsCommonFormsResources.Calculate_all,
+ RingtoetsCommonFormsResources.Plugin_AllDataAvailable_No_failure_mechanism_sections_imported,
+ RingtoetsCommonFormsResources.CalculateAllIcon,
+ false);
+ }
+ }
+ }
+
+ [Test]
+ public void ContextMenuStrip_FailureMechanismSectionsSetNoHydraulicBoundaryDatabase_ContextMenuItemCalculateAllDisabledAndTooltipSet()
+ {
+ // Setup
+ var guiMock = mocksRepository.StrictMock();
+ var failureMechanism = new StabilityPointStructuresFailureMechanism();
+ failureMechanism.CalculationsGroup.Children.Add(new StabilityPointStructuresCalculation());
+ failureMechanism.AddSection(new FailureMechanismSection("test", new[]
+ {
+ new Point2D(0, 0)
+ }));
+
+ var assessmentSectionMock = mocksRepository.Stub();
+
+ var nodeData = new StabilityPointStructuresFailureMechanismContext(failureMechanism, assessmentSectionMock);
+ var menuBuilder = new CustomItemsOnlyContextMenuBuilder();
+
+ using (var plugin = new StabilityPointStructuresPlugin())
+ using (var treeViewControl = new TreeViewControl())
+ {
+ guiMock.Expect(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder);
+ mocksRepository.ReplayAll();
+
+ var info = GetInfo(plugin);
+ plugin.Gui = guiMock;
+
+ // Call
+ using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl))
+ {
+ // Assert
+ TestHelper.AssertContextMenuStripContainsItem(contextMenu, contextMenuCalculateAllIndex,
+ RingtoetsCommonFormsResources.Calculate_all,
+ RingtoetsCommonFormsResources.Plugin_AllDataAvailable_No_hydraulic_boundary_database_imported,
+ RingtoetsCommonFormsResources.CalculateAllIcon,
+ false);
+ }
+ }
+ }
+
+ [Test]
+ public void ContextMenuStrip_FailureMechanismSectionsSetHydraulicBoundaryDatabaseNotValid_ContextMenuItemCalculateAllDisabledAndTooltipSet()
+ {
+ // Setup
+ var guiMock = mocksRepository.StrictMock();
+ var failureMechanism = new StabilityPointStructuresFailureMechanism();
+ failureMechanism.CalculationsGroup.Children.Add(new StabilityPointStructuresCalculation());
+ failureMechanism.AddSection(new FailureMechanismSection("test", new[]
+ {
+ new Point2D(0, 0)
+ }));
+
+ var assessmentSectionMock = mocksRepository.Stub();
+ assessmentSectionMock.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
+
+ var nodeData = new StabilityPointStructuresFailureMechanismContext(failureMechanism, assessmentSectionMock);
+ var menuBuilder = new CustomItemsOnlyContextMenuBuilder();
+
+ using (var plugin = new StabilityPointStructuresPlugin())
+ using (var treeViewControl = new TreeViewControl())
+ {
+ guiMock.Expect(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder);
+ mocksRepository.ReplayAll();
+
+ var info = GetInfo(plugin);
+ plugin.Gui = guiMock;
+
+ // Call
+ using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl))
+ {
+ // Assert
+ ToolStripItem contextMenuItem = contextMenu.Items[contextMenuCalculateAllIndex];
+
+ Assert.AreEqual(RingtoetsCommonFormsResources.Calculate_all, contextMenuItem.Text);
+ StringAssert.Contains(string.Format(RingtoetsCommonServicesResources.Hydraulic_boundary_database_connection_failed_0_, ""), contextMenuItem.ToolTipText);
+ TestHelper.AssertImagesAreEqual(RingtoetsCommonFormsResources.CalculateAllIcon, contextMenuItem.Image);
+ Assert.IsFalse(contextMenuItem.Enabled);
+ }
+ }
+ }
+
+ [Test]
+ public void ContextMenuStrip_FailureMechanismSectionsAndHydraulicDatabaseSet_ContextMenuItemCalculateAllEnabled()
+ {
+ // Setup
+ var guiMock = mocksRepository.StrictMock();
+ var failureMechanism = new StabilityPointStructuresFailureMechanism();
+ failureMechanism.CalculationsGroup.Children.Add(new StabilityPointStructuresCalculation());
+ failureMechanism.AddSection(new FailureMechanismSection("test", new[]
+ {
+ new Point2D(0, 0)
+ }));
+
+ string validFilePath = Path.Combine(testDataPath, "complete.sqlite");
+
+ var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase
+ {
+ FilePath = validFilePath,
+ Version = "1.0"
+ };
+
+ var assessmentSectionMock = mocksRepository.Stub();
+ assessmentSectionMock.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase;
+
+ var nodeData = new StabilityPointStructuresFailureMechanismContext(failureMechanism, assessmentSectionMock);
+ var menuBuilder = new CustomItemsOnlyContextMenuBuilder();
+
+ using (var plugin = new StabilityPointStructuresPlugin())
+ using (var treeViewControl = new TreeViewControl())
+ {
+ guiMock.Expect(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder);
+ mocksRepository.ReplayAll();
+
+ var info = GetInfo(plugin);
+ plugin.Gui = guiMock;
+
+ // Call
+ using (ContextMenuStrip menu = info.ContextMenuStrip(nodeData, null, treeViewControl))
+ {
+ // Assert
+ TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuCalculateAllIndex,
+ RingtoetsCommonFormsResources.Calculate_all,
+ RingtoetsCommonFormsResources.Calculate_all_ToolTip,
+ RingtoetsCommonFormsResources.CalculateAllIcon);
+ }
+ }
+ }
+
+ [Test]
+ public void ContextMenuStrip_NoFailureMechanismSections_ContextMenuItemValidateAllDisabledAndTooltipSet()
+ {
+ // Setup
+ var guiMock = mocksRepository.StrictMock();
+ var failureMechanism = new StabilityPointStructuresFailureMechanism();
+ failureMechanism.CalculationsGroup.Children.Add(new StabilityPointStructuresCalculation());
+ var assessmentSectionMock = mocksRepository.Stub();
+
+ var nodeData = new StabilityPointStructuresFailureMechanismContext(failureMechanism, assessmentSectionMock);
+ var menuBuilder = new CustomItemsOnlyContextMenuBuilder();
+
+ using (var plugin = new StabilityPointStructuresPlugin())
+ using (var treeViewControl = new TreeViewControl())
+ {
+ guiMock.Expect(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder);
+ mocksRepository.ReplayAll();
+
+ var info = GetInfo(plugin);
+ plugin.Gui = guiMock;
+
+ // Call
+ using (ContextMenuStrip menu = info.ContextMenuStrip(nodeData, null, treeViewControl))
+ {
+ // Assert
+ TestHelper.AssertContextMenuStripContainsItem(menu, contextMenuValidateAllIndex,
+ RingtoetsCommonFormsResources.Validate_all,
+ RingtoetsCommonFormsResources.Plugin_AllDataAvailable_No_failure_mechanism_sections_imported,
+ RingtoetsCommonFormsResources.ValidateAllIcon,
+ false);
+ }
+ }
+ }
+
+ [Test]
+ public void ContextMenuStrip_FailureMechanismSectionsSetNoHydraulicBoundaryDatabase_ContextMenuItemValidateAllDisabledAndTooltipSet()
+ {
+ // Setup
+ var guiMock = mocksRepository.StrictMock();
+ var failureMechanism = new StabilityPointStructuresFailureMechanism();
+ failureMechanism.CalculationsGroup.Children.Add(new StabilityPointStructuresCalculation());
+ failureMechanism.AddSection(new FailureMechanismSection("test", new[]
+ {
+ new Point2D(0, 0)
+ }));
+
+ var assessmentSectionMock = mocksRepository.Stub();
+
+ var nodeData = new StabilityPointStructuresFailureMechanismContext(failureMechanism, assessmentSectionMock);
+ var menuBuilder = new CustomItemsOnlyContextMenuBuilder();
+
+ using (var plugin = new StabilityPointStructuresPlugin())
+ using (var treeViewControl = new TreeViewControl())
+ {
+ guiMock.Expect(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder);
+ mocksRepository.ReplayAll();
+
+ var info = GetInfo(plugin);
+ plugin.Gui = guiMock;
+
+ // Call
+ using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl))
+ {
+ // Assert
+ TestHelper.AssertContextMenuStripContainsItem(contextMenu, contextMenuValidateAllIndex,
+ RingtoetsCommonFormsResources.Validate_all,
+ RingtoetsCommonFormsResources.Plugin_AllDataAvailable_No_hydraulic_boundary_database_imported,
+ RingtoetsCommonFormsResources.ValidateAllIcon,
+ false);
+ }
+ }
+ }
+
+ [Test]
+ public void ContextMenuStrip_FailureMechanismSectionsSetHydraulicBoundaryDatabaseNotValid_ContextMenuItemValidateAllDisabledAndTooltipSet()
+ {
+ // Setup
+ var guiMock = mocksRepository.StrictMock();
+ var failureMechanism = new StabilityPointStructuresFailureMechanism();
+ failureMechanism.CalculationsGroup.Children.Add(new StabilityPointStructuresCalculation());
+ failureMechanism.AddSection(new FailureMechanismSection("test", new[]
+ {
+ new Point2D(0, 0)
+ }));
+
+ var assessmentSectionMock = mocksRepository.Stub();
+ assessmentSectionMock.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
+
+ var nodeData = new StabilityPointStructuresFailureMechanismContext(failureMechanism, assessmentSectionMock);
+ var menuBuilder = new CustomItemsOnlyContextMenuBuilder();
+
+ using (var plugin = new StabilityPointStructuresPlugin())
+ using (var treeViewControl = new TreeViewControl())
+ {
+ guiMock.Expect(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder);
+ mocksRepository.ReplayAll();
+
+ var info = GetInfo(plugin);
+ plugin.Gui = guiMock;
+
+ // Call
+ using (ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl))
+ {
+ // Assert
+ ToolStripItem contextMenuItem = contextMenu.Items[contextMenuValidateAllIndex];
+
+ Assert.AreEqual(RingtoetsCommonFormsResources.Validate_all, contextMenuItem.Text);
+ StringAssert.Contains(string.Format(RingtoetsCommonServicesResources.Hydraulic_boundary_database_connection_failed_0_, ""), contextMenuItem.ToolTipText);
+ TestHelper.AssertImagesAreEqual(RingtoetsCommonFormsResources.ValidateAllIcon, contextMenuItem.Image);
+ Assert.IsFalse(contextMenuItem.Enabled);
+ }
+ }
+ }
+
private static TreeNodeInfo GetInfo(StabilityPointStructuresPlugin plugin)
{
return plugin.GetTreeNodeInfos().First(tni => tni.TagType == typeof(StabilityPointStructuresFailureMechanismContext));