Index: Core/Common/src/Core.Common.Base/Properties/Resources.Designer.cs =================================================================== diff -u -r5e6eacaf76f765ba77febee673e9e94895e46feb -r12a35732d53e73c149035a212f96d2a0e9604cff --- Core/Common/src/Core.Common.Base/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 5e6eacaf76f765ba77febee673e9e94895e46feb) +++ Core/Common/src/Core.Common.Base/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 12a35732d53e73c149035a212f96d2a0e9604cff) @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.17929 +// Runtime Version:4.0.30319.18444 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -116,15 +116,6 @@ } /// - /// Looks up a localized string similar to Dijkprofielen. - /// - public static string GrassCoverErosionInwardsGuiPlugin_DikeProfilesContext_DisplayName { - get { - return ResourceManager.GetString("GrassCoverErosionInwardsGuiPlugin_DikeProfilesContext_DisplayName", resourceCulture); - } - } - - /// /// Looks up a localized string similar to Punten voor een lijn moeten uit elkaar liggen om een lijn te kunnen vormen.. /// public static string Math2D_LineIntersectionWithLine_Line_points_are_equal { @@ -161,15 +152,6 @@ } /// - /// Looks up a localized string similar to De waarde moet tussen 0 en 1 zijn.. - /// - public static string PipingProbabilityAssessmentInput_A_Value_must_be_between_zero_and_one { - get { - return ResourceManager.GetString("PipingProbabilityAssessmentInput_A_Value_must_be_between_zero_and_one", resourceCulture); - } - } - - /// /// Looks up a localized string similar to Vector moet 2 dimensies hebben, maar heeft er {0}.. /// public static string Point2D_AddVector_Vector_must_be_2D_but_has_Dimensionality_0_ { Index: Core/Common/src/Core.Common.Base/Properties/Resources.resx =================================================================== diff -u -r5e6eacaf76f765ba77febee673e9e94895e46feb -r12a35732d53e73c149035a212f96d2a0e9604cff --- Core/Common/src/Core.Common.Base/Properties/Resources.resx (.../Resources.resx) (revision 5e6eacaf76f765ba77febee673e9e94895e46feb) +++ Core/Common/src/Core.Common.Base/Properties/Resources.resx (.../Resources.resx) (revision 12a35732d53e73c149035a212f96d2a0e9604cff) @@ -174,10 +174,4 @@ De tekst mag niet leeg zijn. - - De waarde moet tussen 0 en 1 zijn. - - - Dijkprofielen - \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.Service/CalculationServiceHelper.cs =================================================================== diff -u -r5e6eacaf76f765ba77febee673e9e94895e46feb -r12a35732d53e73c149035a212f96d2a0e9604cff --- Ringtoets/Common/src/Ringtoets.Common.Service/CalculationServiceHelper.cs (.../CalculationServiceHelper.cs) (revision 5e6eacaf76f765ba77febee673e9e94895e46feb) +++ Ringtoets/Common/src/Ringtoets.Common.Service/CalculationServiceHelper.cs (.../CalculationServiceHelper.cs) (revision 12a35732d53e73c149035a212f96d2a0e9604cff) @@ -133,7 +133,7 @@ /// /// Logs the end time of the calculation. /// - /// TThe name of the calculation that has ended. + /// The name of the calculation that has ended. public static void LogCalculationEndTime(string name) { log.Info(string.Format(Resources.Calculation_Subject_0_ended_Time_1_, Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs =================================================================== diff -u -r5e6eacaf76f765ba77febee673e9e94895e46feb -r12a35732d53e73c149035a212f96d2a0e9604cff --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 5e6eacaf76f765ba77febee673e9e94895e46feb) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 12a35732d53e73c149035a212f96d2a0e9604cff) @@ -47,6 +47,7 @@ using GrassCoverErosionInwardsDataResources = Ringtoets.GrassCoverErosionInwards.Data.Properties.Resources; using GrassCoverErosionInwardsFormsResources = Ringtoets.GrassCoverErosionInwards.Forms.Properties.Resources; +using GrassCoverErosionInwardsPluginResources = Ringtoets.GrassCoverErosionInwards.Plugin.Properties.Resources; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; using BaseResources = Core.Common.Base.Properties.Resources; @@ -90,7 +91,7 @@ yield return new TreeNodeInfo { - Text = context => BaseResources.GrassCoverErosionInwardsGuiPlugin_DikeProfilesContext_DisplayName, + Text = context => GrassCoverErosionInwardsPluginResources.GrassCoverErosionInwardsGuiPlugin_DikeProfilesContext_DisplayName, Image = context => RingtoetsCommonFormsResources.GeneralFolderIcon, ForeColor = context => context.WrappedData.Any() ? Color.FromKnownColor(KnownColor.ControlText) : Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/Properties/Resources.Designer.cs =================================================================== diff -u -r0209ecd38a9cb1e7224ceabe8b13e0697346abb9 -r12a35732d53e73c149035a212f96d2a0e9604cff --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 0209ecd38a9cb1e7224ceabe8b13e0697346abb9) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 12a35732d53e73c149035a212f96d2a0e9604cff) @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.42000 +// Runtime Version:4.0.30319.18444 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -71,6 +71,15 @@ } /// + /// Looks up a localized string similar to Dijkprofielen. + /// + internal static string GrassCoverErosionInwardsGuiPlugin_DikeProfilesContext_DisplayName { + get { + return ResourceManager.GetString("GrassCoverErosionInwardsGuiPlugin_DikeProfilesContext_DisplayName", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Er is een fout opgetreden tijdens de berekening.. /// internal static string GrassCoverErosionInwardsGuiPlugin_Error_during_overtopping_calculation { Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/Properties/Resources.resx =================================================================== diff -u -r0209ecd38a9cb1e7224ceabe8b13e0697346abb9 -r12a35732d53e73c149035a212f96d2a0e9604cff --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/Properties/Resources.resx (.../Resources.resx) (revision 0209ecd38a9cb1e7224ceabe8b13e0697346abb9) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/Properties/Resources.resx (.../Resources.resx) (revision 12a35732d53e73c149035a212f96d2a0e9604cff) @@ -121,6 +121,9 @@ ..\Resources\DikeProfile.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Dijkprofielen + Er is een fout opgetreden tijdens de berekening. Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingProbabilityAssessmentInput.cs =================================================================== diff -u -r5f1e64c97c72ebffee680a97eb567696a9972c65 -r12a35732d53e73c149035a212f96d2a0e9604cff --- Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingProbabilityAssessmentInput.cs (.../PipingProbabilityAssessmentInput.cs) (revision 5f1e64c97c72ebffee680a97eb567696a9972c65) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/PipingProbabilityAssessmentInput.cs (.../PipingProbabilityAssessmentInput.cs) (revision 12a35732d53e73c149035a212f96d2a0e9604cff) @@ -20,9 +20,10 @@ // All rights reserved. using System; -using Core.Common.Base.Properties; using Core.Common.Base.Storage; +using Ringtoets.Piping.Data.Properties; + namespace Ringtoets.Piping.Data { /// Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/Properties/Resources.Designer.cs =================================================================== diff -u -r14de3deecd2cff7f6abe41ed6dc5dc016c4c81e0 -r12a35732d53e73c149035a212f96d2a0e9604cff --- Ringtoets/Piping/src/Ringtoets.Piping.Data/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 14de3deecd2cff7f6abe41ed6dc5dc016c4c81e0) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 12a35732d53e73c149035a212f96d2a0e9604cff) @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:4.0.30319.42000 +// Runtime Version:4.0.30319.18444 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -178,6 +178,15 @@ } /// + /// Looks up a localized string similar to De waarde moet tussen 0 en 1 zijn.. + /// + public static string PipingProbabilityAssessmentInput_A_Value_must_be_between_zero_and_one { + get { + return ResourceManager.GetString("PipingProbabilityAssessmentInput_A_Value_must_be_between_zero_and_one", resourceCulture); + } + } + + /// /// Looks up a localized string similar to Level {0} is below the bottom of the soil profile {1}.. /// public static string PipingSoilProfile_GetTopAquiferLayerThicknessBelowLevel_Level_0_below_Bottom_1_ { Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/Properties/Resources.resx =================================================================== diff -u -r14de3deecd2cff7f6abe41ed6dc5dc016c4c81e0 -r12a35732d53e73c149035a212f96d2a0e9604cff --- Ringtoets/Piping/src/Ringtoets.Piping.Data/Properties/Resources.resx (.../Resources.resx) (revision 14de3deecd2cff7f6abe41ed6dc5dc016c4c81e0) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/Properties/Resources.resx (.../Resources.resx) (revision 12a35732d53e73c149035a212f96d2a0e9604cff) @@ -180,4 +180,7 @@ STPH + + De waarde moet tussen 0 en 1 zijn. + \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -r5e6eacaf76f765ba77febee673e9e94895e46feb -r12a35732d53e73c149035a212f96d2a0e9604cff --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs (.../PipingCalculationGroupContextTreeNodeInfoTest.cs) (revision 5e6eacaf76f765ba77febee673e9e94895e46feb) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs (.../PipingCalculationGroupContextTreeNodeInfoTest.cs) (revision 12a35732d53e73c149035a212f96d2a0e9604cff) @@ -23,6 +23,7 @@ using System.Collections.Generic; using System.Linq; using System.Windows.Forms; + using Core.Common.Base; using Core.Common.Base.Geometry; using Core.Common.Controls.TreeView; @@ -32,9 +33,12 @@ using Core.Common.Gui.Forms.MainWindow; using Core.Common.Gui.TestUtil.ContextMenu; using Core.Common.TestUtil; + using NUnit.Extensions.Forms; using NUnit.Framework; + using Rhino.Mocks; + using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.Contribution; @@ -45,6 +49,7 @@ using Ringtoets.Piping.KernelWrapper.TestUtil; using Ringtoets.Piping.Plugin; using Ringtoets.Piping.Primitives; + using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; using PipingFormsResources = Ringtoets.Piping.Forms.Properties.Resources; using CoreCommonGuiResources = Core.Common.Gui.Properties.Resources; @@ -132,10 +137,10 @@ // Assert Assert.AreEqual(group.Children.Count, children.Length); Assert.AreSame(calculationItem, children[0]); - var returnedCalculationContext = (PipingCalculationScenarioContext) children[1]; + var returnedCalculationContext = (PipingCalculationScenarioContext)children[1]; Assert.AreSame(childCalculation, returnedCalculationContext.WrappedData); Assert.AreSame(pipingFailureMechanism, returnedCalculationContext.FailureMechanism); - var returnedCalculationGroupContext = (PipingCalculationGroupContext) children[2]; + var returnedCalculationGroupContext = (PipingCalculationGroupContext)children[2]; Assert.AreSame(childGroup, returnedCalculationGroupContext.WrappedData); Assert.AreSame(pipingFailureMechanism, returnedCalculationGroupContext.FailureMechanism); Assert.AreSame(assessmentSectionMock, returnedCalculationGroupContext.AssessmentSection); @@ -377,509 +382,530 @@ public void ContextMenuStrip_WithoutParentNodeDefaultBehaviorAndWithoutAvailableSurfaceLines_GenerateCalculationsDisabled() { // Setup - var gui = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var group = new CalculationGroup(); + using (var treeViewControl = new TreeViewControl()) + { + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var pipingFailureMechanism = new PipingFailureMechanism(); - var assessmentSectionMock = mocks.StrictMock(); + var group = new CalculationGroup(); - var nodeData = new PipingCalculationGroupContext(group, - Enumerable.Empty(), - new[] - { - new TestStochasticSoilModel() - }, - pipingFailureMechanism, - assessmentSectionMock); + var pipingFailureMechanism = new PipingFailureMechanism(); + var assessmentSectionMock = mocks.StrictMock(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - gui.Expect(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + var nodeData = new PipingCalculationGroupContext(group, + Enumerable.Empty(), + new[] + { + new TestStochasticSoilModel() + }, + pipingFailureMechanism, + assessmentSectionMock); - mocks.ReplayAll(); + var gui = mocks.StrictMock(); + gui.Expect(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); - plugin.Gui = gui; + mocks.ReplayAll(); - // Call - ContextMenuStrip menu = info.ContextMenuStrip(nodeData, null, treeViewControl); + plugin.Gui = gui; - // Assert - TestHelper.AssertContextMenuStripContainsItem(menu, 1, - PipingFormsResources.PipingCalculationGroup_Generate_PipingCalculations, - PipingFormsResources.PipingCalculationGroup_Generate_PipingCalculations_NoSurfaceLinesOrSoilModels_ToolTip, - PipingFormsResources.GeneratePipingCalculationsIcon, - false); + // Call + ContextMenuStrip menu = info.ContextMenuStrip(nodeData, null, treeViewControl); + + // Assert + TestHelper.AssertContextMenuStripContainsItem(menu, 1, + PipingFormsResources.PipingCalculationGroup_Generate_PipingCalculations, + PipingFormsResources.PipingCalculationGroup_Generate_PipingCalculations_NoSurfaceLinesOrSoilModels_ToolTip, + PipingFormsResources.GeneratePipingCalculationsIcon, + false); + } + mocks.VerifyAll(); } [Test] public void ContextMenuStrip_WithoutParentNodeDefaultBehaviorAndWithoutAvailableSoilModels_GenerateCalculationsDisabled() { // Setup - var gui = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var group = new CalculationGroup(); + using (var treeViewControl = new TreeViewControl()) + { + var group = new CalculationGroup(); - var pipingFailureMechanism = new PipingFailureMechanism(); - var assessmentSectionMock = mocks.StrictMock(); + var pipingFailureMechanism = new PipingFailureMechanism(); + var assessmentSectionMock = mocks.StrictMock(); - var nodeData = new PipingCalculationGroupContext(group, - new[] - { - new RingtoetsPipingSurfaceLine() - }, - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); + var nodeData = new PipingCalculationGroupContext(group, + new[] + { + new RingtoetsPipingSurfaceLine() + }, + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - gui.Expect(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - mocks.ReplayAll(); + var gui = mocks.StrictMock(); + gui.Expect(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); - plugin.Gui = gui; + mocks.ReplayAll(); - // Call - ContextMenuStrip menu = info.ContextMenuStrip(nodeData, null, treeViewControl); + plugin.Gui = gui; - // Assert - TestHelper.AssertContextMenuStripContainsItem(menu, 1, - PipingFormsResources.PipingCalculationGroup_Generate_PipingCalculations, - PipingFormsResources.PipingCalculationGroup_Generate_PipingCalculations_NoSurfaceLinesOrSoilModels_ToolTip, - PipingFormsResources.GeneratePipingCalculationsIcon, - false); + // Call + ContextMenuStrip menu = info.ContextMenuStrip(nodeData, null, treeViewControl); + + // Assert + TestHelper.AssertContextMenuStripContainsItem(menu, 1, + PipingFormsResources.PipingCalculationGroup_Generate_PipingCalculations, + PipingFormsResources.PipingCalculationGroup_Generate_PipingCalculations_NoSurfaceLinesOrSoilModels_ToolTip, + PipingFormsResources.GeneratePipingCalculationsIcon, + false); + } + mocks.VerifyAll(); } [Test] public void ContextMenuStrip_WithoutParentNodeDefaultBehaviorAndWithAvailableSurfaceLinesAndSoilModels_GenerateCalculationsEnabled() { // Setup - var gui = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var group = new CalculationGroup(); + using (var treeViewControl = new TreeViewControl()) + { + var group = new CalculationGroup(); - var pipingFailureMechanism = new PipingFailureMechanism(); - var assessmentSectionMock = mocks.StrictMock(); + var pipingFailureMechanism = new PipingFailureMechanism(); + var assessmentSectionMock = mocks.StrictMock(); - var nodeData = new PipingCalculationGroupContext(group, - new[] - { - new RingtoetsPipingSurfaceLine() - }, - new[] - { - new TestStochasticSoilModel() - }, - pipingFailureMechanism, - assessmentSectionMock); + var nodeData = new PipingCalculationGroupContext(group, + new[] + { + new RingtoetsPipingSurfaceLine() + }, + new[] + { + new TestStochasticSoilModel() + }, + pipingFailureMechanism, + assessmentSectionMock); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - gui.Expect(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - mocks.ReplayAll(); + var gui = mocks.StrictMock(); + gui.Expect(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); - plugin.Gui = gui; + mocks.ReplayAll(); - // Call - ContextMenuStrip menu = info.ContextMenuStrip(nodeData, null, treeViewControl); + plugin.Gui = gui; - // Assert - TestHelper.AssertContextMenuStripContainsItem(menu, 1, - PipingFormsResources.PipingCalculationGroup_Generate_PipingCalculations, - PipingFormsResources.PipingCalculationGroup_Generate_PipingCalculations_ToolTip, - PipingFormsResources.GeneratePipingCalculationsIcon); + // Call + ContextMenuStrip menu = info.ContextMenuStrip(nodeData, null, treeViewControl); + + // Assert + TestHelper.AssertContextMenuStripContainsItem(menu, 1, + PipingFormsResources.PipingCalculationGroup_Generate_PipingCalculations, + PipingFormsResources.PipingCalculationGroup_Generate_PipingCalculations_ToolTip, + PipingFormsResources.GeneratePipingCalculationsIcon); + } + mocks.VerifyAll(); } [Test] public void ContextMenuStrip_NestedCalculationGroupWithNoCalculations_ValidateAndCalculateAllDisabled() { // Setup - var gui = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + using (var treeViewControl = new TreeViewControl()) + { + var group = new CalculationGroup(); + var parentGroup = new CalculationGroup(); - var group = new CalculationGroup(); - var parentGroup = new CalculationGroup(); - var pipingFailureMechanism = new PipingFailureMechanism(); - var assessmentSectionMock = mocks.StrictMock(); - var nodeData = new PipingCalculationGroupContext(group, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); - var parentNodeData = new PipingCalculationGroupContext(parentGroup, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); + var pipingFailureMechanism = new PipingFailureMechanism(); + var assessmentSectionMock = mocks.StrictMock(); + var nodeData = new PipingCalculationGroupContext(group, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); + var parentNodeData = new PipingCalculationGroupContext(parentGroup, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); - gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - mocks.ReplayAll(); + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); - plugin.Gui = gui; + mocks.ReplayAll(); - // Call - ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl); + plugin.Gui = gui; - // Assert - ToolStripItem validateItem = contextMenu.Items[contextMenuValidateAllIndex]; - ToolStripItem calculateItem = contextMenu.Items[contextMenuCalculateAllIndex]; - Assert.IsFalse(validateItem.Enabled); - Assert.IsFalse(calculateItem.Enabled); - Assert.AreEqual(RingtoetsCommonFormsResources.FailureMechanism_CreateCalculateAllItem_No_calculations_to_run, calculateItem.ToolTipText); - Assert.AreEqual(RingtoetsCommonFormsResources.FailureMechanism_CreateValidateAllItem_No_calculations_to_validate, validateItem.ToolTipText); + // Call + ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl); + // Assert + ToolStripItem validateItem = contextMenu.Items[contextMenuValidateAllIndex]; + ToolStripItem calculateItem = contextMenu.Items[contextMenuCalculateAllIndex]; + Assert.IsFalse(validateItem.Enabled); + Assert.IsFalse(calculateItem.Enabled); + Assert.AreEqual(RingtoetsCommonFormsResources.FailureMechanism_CreateCalculateAllItem_No_calculations_to_run, calculateItem.ToolTipText); + Assert.AreEqual(RingtoetsCommonFormsResources.FailureMechanism_CreateValidateAllItem_No_calculations_to_validate, validateItem.ToolTipText); + } mocks.VerifyAll(); // Expect no calls on arguments } [Test] public void ContextMenuStrip_ClickOnAddGroupItem_AddGroupToCalculationGroupAndNotifyObservers() { // Setup - var gui = mocks.StrictMock(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var group = new CalculationGroup(); - var parentGroup = new CalculationGroup(); - var pipingFailureMechanism = new PipingFailureMechanism(); - var assessmentSectionMock = mocks.StrictMock(); - var nodeData = new PipingCalculationGroupContext(group, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); - var parentNodeData = new PipingCalculationGroupContext(parentGroup, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); - - var calculationItem = new CalculationGroup + using (var treeViewControl = new TreeViewControl()) { - Name = "Nieuwe map" - }; + var group = new CalculationGroup(); + var parentGroup = new CalculationGroup(); + var pipingFailureMechanism = new PipingFailureMechanism(); + var assessmentSectionMock = mocks.StrictMock(); + var nodeData = new PipingCalculationGroupContext(group, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); + var parentNodeData = new PipingCalculationGroupContext(parentGroup, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); - var observer = mocks.StrictMock(); - observer.Expect(o => o.UpdateObserver()); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var treeViewControl = new TreeViewControl(); + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); - gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); + var observer = mocks.StrictMock(); + observer.Expect(o => o.UpdateObserver()); + mocks.ReplayAll(); - mocks.ReplayAll(); + plugin.Gui = gui; - plugin.Gui = gui; + var calculationItem = new CalculationGroup + { + Name = "Nieuwe map" + }; + group.Children.Add(calculationItem); - group.Children.Add(calculationItem); + nodeData.Attach(observer); - nodeData.Attach(observer); + ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl); - ContextMenuStrip contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl); + // Precondition + Assert.AreEqual(1, group.Children.Count); - // Precondition - Assert.AreEqual(1, group.Children.Count); + // Call + contextMenu.Items[contextMenuAddCalculationGroupIndex].PerformClick(); - // Call - contextMenu.Items[contextMenuAddCalculationGroupIndex].PerformClick(); - - // Assert - Assert.AreEqual(2, group.Children.Count); - var newlyAddedItem = group.Children.Last(); - Assert.IsInstanceOf(newlyAddedItem); - Assert.AreEqual("Nieuwe map (1)", newlyAddedItem.Name, - "An item with the same name default name already exists, therefore '(1)' needs to be appended."); - + // Assert + Assert.AreEqual(2, group.Children.Count); + var newlyAddedItem = group.Children.Last(); + Assert.IsInstanceOf(newlyAddedItem); + Assert.AreEqual("Nieuwe map (1)", newlyAddedItem.Name, + "An item with the same name default name already exists, therefore '(1)' needs to be appended."); + } mocks.VerifyAll(); } [Test] public void ContextMenuStrip_ClickOnAddCalculationItem_AddCalculationToCalculationGroupAndNotifyObservers() { // Setup - var gui = mocks.StrictMock(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var group = new CalculationGroup(); - var parentGroup = new CalculationGroup(); - var pipingFailureMechanism = new PipingFailureMechanism(); - var assessmentSectionMock = mocks.StrictMock(); - var nodeData = new PipingCalculationGroupContext(group, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); - var parentNodeData = new PipingCalculationGroupContext(parentGroup, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); - - var calculationItem = new PipingCalculationScenario(new GeneralPipingInput()) + using (var treeViewControl = new TreeViewControl()) { - Name = "Nieuwe berekening" - }; + var group = new CalculationGroup(); + var parentGroup = new CalculationGroup(); + var pipingFailureMechanism = new PipingFailureMechanism(); + var assessmentSectionMock = mocks.StrictMock(); + var nodeData = new PipingCalculationGroupContext(group, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); + var parentNodeData = new PipingCalculationGroupContext(parentGroup, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); - var observer = mocks.StrictMock(); - observer.Expect(o => o.UpdateObserver()); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var treeViewControl = new TreeViewControl(); + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); - gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); + var observer = mocks.StrictMock(); + observer.Expect(o => o.UpdateObserver()); + mocks.ReplayAll(); - mocks.ReplayAll(); + plugin.Gui = gui; - plugin.Gui = gui; + var calculationItem = new PipingCalculationScenario(new GeneralPipingInput()) + { + Name = "Nieuwe berekening" + }; + group.Children.Add(calculationItem); - group.Children.Add(calculationItem); + nodeData.Attach(observer); - nodeData.Attach(observer); + var contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl); - var contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl); + // Precondition + Assert.AreEqual(1, group.Children.Count); - // Precondition - Assert.AreEqual(1, group.Children.Count); + // Call + contextMenu.Items[contextMenuAddCalculationIndex].PerformClick(); - // Call - contextMenu.Items[contextMenuAddCalculationIndex].PerformClick(); - - // Assert - Assert.AreEqual(2, group.Children.Count); - var newlyAddedItem = group.Children.Last(); - Assert.IsInstanceOf(newlyAddedItem); - Assert.AreEqual("Nieuwe berekening (1)", newlyAddedItem.Name, - "An item with the same name default name already exists, therefore '(1)' needs to be appended."); - + // Assert + Assert.AreEqual(2, group.Children.Count); + var newlyAddedItem = group.Children.Last(); + Assert.IsInstanceOf(newlyAddedItem); + Assert.AreEqual("Nieuwe berekening (1)", newlyAddedItem.Name, + "An item with the same name default name already exists, therefore '(1)' needs to be appended."); + } mocks.VerifyAll(); } [Test] public void ContextMenuStrip_ClickOnValidateAllItem_ValidateAllChildCalculations() { // Setup - var gui = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + using (var treeViewControl = new TreeViewControl()) + { + var validCalculation = PipingCalculationFactory.CreateCalculationWithValidInput(); + validCalculation.Name = "A"; + var invalidCalculation = PipingCalculationFactory.CreateCalculationWithInvalidData(); + invalidCalculation.Name = "B"; - var validCalculation = PipingCalculationFactory.CreateCalculationWithValidInput(); - validCalculation.Name = "A"; - var invalidCalculation = PipingCalculationFactory.CreateCalculationWithInvalidData(); - invalidCalculation.Name = "B"; + var childGroup = new CalculationGroup(); + childGroup.Children.Add(validCalculation); - var childGroup = new CalculationGroup(); - childGroup.Children.Add(validCalculation); + var emptyChildGroup = new CalculationGroup(); + var group = new CalculationGroup(); + var parentGroup = new CalculationGroup(); - var emptyChildGroup = new CalculationGroup(); - var group = new CalculationGroup(); - var parentGroup = new CalculationGroup(); + group.Children.Add(childGroup); + group.Children.Add(emptyChildGroup); + group.Children.Add(invalidCalculation); - group.Children.Add(childGroup); - group.Children.Add(emptyChildGroup); - group.Children.Add(invalidCalculation); + var pipingFailureMechanism = new PipingFailureMechanism(); + var assessmentSectionMock = mocks.StrictMock(); - var pipingFailureMechanism = new PipingFailureMechanism(); - var assessmentSectionMock = mocks.StrictMock(); + var nodeData = new PipingCalculationGroupContext(group, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); + var parentNodeData = new PipingCalculationGroupContext(parentGroup, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); - var nodeData = new PipingCalculationGroupContext(group, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); - var parentNodeData = new PipingCalculationGroupContext(parentGroup, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); - mocks.ReplayAll(); + mocks.ReplayAll(); - plugin.Gui = gui; + plugin.Gui = gui; - var contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl); + var contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl); - // Call - Action call = () => contextMenu.Items[contextMenuValidateAllIndex].PerformClick(); + // Call + Action call = () => contextMenu.Items[contextMenuValidateAllIndex].PerformClick(); - // Assert - TestHelper.AssertLogMessages(call, messages => - { - var msgs = messages.ToArray(); - Assert.AreEqual(6, msgs.Length); - StringAssert.StartsWith(String.Format("Validatie van '{0}' gestart om: ", validCalculation.Name), msgs[0]); - StringAssert.StartsWith(String.Format("Validatie van '{0}' beëindigd om: ", validCalculation.Name), msgs[1]); + // Assert + TestHelper.AssertLogMessages(call, messages => + { + var msgs = messages.ToArray(); + Assert.AreEqual(6, msgs.Length); + StringAssert.StartsWith(String.Format("Validatie van '{0}' gestart om: ", validCalculation.Name), msgs[0]); + StringAssert.StartsWith(String.Format("Validatie van '{0}' beëindigd om: ", validCalculation.Name), msgs[1]); - StringAssert.StartsWith(String.Format("Validatie van '{0}' gestart om: ", invalidCalculation.Name), msgs[2]); - // Some validation error from validation service - StringAssert.StartsWith(String.Format("Validatie van '{0}' beëindigd om: ", invalidCalculation.Name), msgs[5]); - }); + StringAssert.StartsWith(String.Format("Validatie van '{0}' gestart om: ", invalidCalculation.Name), msgs[2]); + // Some validation error from validation service + StringAssert.StartsWith(String.Format("Validatie van '{0}' beëindigd om: ", invalidCalculation.Name), msgs[5]); + }); + } mocks.VerifyAll(); } [Test] public void ContextMenuStrip_NoFailureMechanismSections_ContextMenuItemCalculateAllDisabledAndTooltipSet() { // Setup - var gui = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var pipingFailureMechanism = new PipingFailureMechanism(); - var assessmentSectionMock = mocks.StrictMock(); - - var parentGroup = new CalculationGroup(); - var group = new CalculationGroup + using (var treeViewControl = new TreeViewControl()) { - Children = + var pipingFailureMechanism = new PipingFailureMechanism(); + var assessmentSectionMock = mocks.StrictMock(); + + var parentGroup = new CalculationGroup(); + var group = new CalculationGroup { - new PipingCalculationScenario(new GeneralPipingInput()) - } - }; + Children = + { + new PipingCalculationScenario(new GeneralPipingInput()) + } + }; - var nodeData = new PipingCalculationGroupContext(group, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); + var nodeData = new PipingCalculationGroupContext(group, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); - var parentNodeData = new PipingCalculationGroupContext(parentGroup, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); + var parentNodeData = new PipingCalculationGroupContext(parentGroup, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - gui.Expect(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); - plugin.Gui = gui; + var gui = mocks.StrictMock(); + gui.Expect(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + plugin.Gui = gui; - mocks.ReplayAll(); + mocks.ReplayAll(); - // Call - ContextMenuStrip menu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl); + // Call + ContextMenuStrip menu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl); - // Assert - TestHelper.AssertContextMenuStripContainsItem(menu, - contextMenuCalculateAllIndex, - RingtoetsCommonFormsResources.Calculate_all, - RingtoetsCommonFormsResources.GuiPlugin_AllDataAvailable_No_failure_mechanism_sections_imported, - RingtoetsCommonFormsResources.CalculateAllIcon, - false); + // Assert + TestHelper.AssertContextMenuStripContainsItem(menu, + contextMenuCalculateAllIndex, + RingtoetsCommonFormsResources.Calculate_all, + RingtoetsCommonFormsResources.GuiPlugin_AllDataAvailable_No_failure_mechanism_sections_imported, + RingtoetsCommonFormsResources.CalculateAllIcon, + false); + } mocks.VerifyAll(); } [Test] public void ContextMenuStrip_FailureMechanismSectionsSet_ContextMenuItemCalculateAllEnabled() { // Setup - var gui = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var assessmentSectionMock = mocks.StrictMock(); - - var pipingFailureMechanism = new PipingFailureMechanism(); - pipingFailureMechanism.AddSection(new FailureMechanismSection("A", new[] + using (var treeViewControl = new TreeViewControl()) { - new Point2D(0, 0) - })); + var assessmentSectionMock = mocks.StrictMock(); - var parentGroup = new CalculationGroup(); - var group = new CalculationGroup - { - Children = + var pipingFailureMechanism = new PipingFailureMechanism(); + pipingFailureMechanism.AddSection(new FailureMechanismSection("A", new[] { - new PipingCalculationScenario(new GeneralPipingInput()) - } - }; + new Point2D(0, 0) + })); - var nodeData = new PipingCalculationGroupContext(group, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); + var parentGroup = new CalculationGroup(); + var group = new CalculationGroup + { + Children = + { + new PipingCalculationScenario(new GeneralPipingInput()) + } + }; - var parentNodeData = new PipingCalculationGroupContext(parentGroup, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); + var nodeData = new PipingCalculationGroupContext(group, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); - gui.Expect(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); - plugin.Gui = gui; + var parentNodeData = new PipingCalculationGroupContext(parentGroup, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); - mocks.ReplayAll(); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - // Call - ContextMenuStrip menu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl); + var gui = mocks.StrictMock(); + gui.Expect(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + plugin.Gui = gui; - // Assert - TestHelper.AssertContextMenuStripContainsItem(menu, - contextMenuCalculateAllIndex, - RingtoetsCommonFormsResources.Calculate_all, - RingtoetsCommonFormsResources.CalculationGroup_CalculateAll_ToolTip, - RingtoetsCommonFormsResources.CalculateAllIcon); + mocks.ReplayAll(); + + // Call + ContextMenuStrip menu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl); + + // Assert + TestHelper.AssertContextMenuStripContainsItem(menu, + contextMenuCalculateAllIndex, + RingtoetsCommonFormsResources.Calculate_all, + RingtoetsCommonFormsResources.CalculationGroup_CalculateAll_ToolTip, + RingtoetsCommonFormsResources.CalculateAllIcon); + } mocks.VerifyAll(); } [Test] public void ContextMenuStrip_ClickOnCalculateAllItem_ScheduleAllChildCalculations() { // Setup - var gui = mocks.StrictMock(); - var mainWindow = mocks.Stub(); - var treeViewControl = new TreeViewControl(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + using (var treeViewControl = new TreeViewControl()) + { + var mainWindow = mocks.Stub(); - var validCalculation = PipingCalculationFactory.CreateCalculationWithValidInput(); - validCalculation.Name = "A"; - var invalidCalculation = PipingCalculationFactory.CreateCalculationWithInvalidData(); - invalidCalculation.Name = "B"; + var validCalculation = PipingCalculationFactory.CreateCalculationWithValidInput(); + validCalculation.Name = "A"; + var invalidCalculation = PipingCalculationFactory.CreateCalculationWithInvalidData(); + invalidCalculation.Name = "B"; - var childGroup = new CalculationGroup(); - childGroup.Children.Add(validCalculation); + var childGroup = new CalculationGroup(); + childGroup.Children.Add(validCalculation); - var emptyChildGroup = new CalculationGroup(); + var emptyChildGroup = new CalculationGroup(); - var group = new CalculationGroup(); - var parentGroup = new CalculationGroup(); + var group = new CalculationGroup(); + var parentGroup = new CalculationGroup(); - group.Children.Add(childGroup); - group.Children.Add(emptyChildGroup); - group.Children.Add(invalidCalculation); - - var pipingFailureMechanism = new PipingFailureMechanism(); - pipingFailureMechanism.AddSection(new FailureMechanismSection("A", new[] - { - new Point2D(0, 0) - })); + group.Children.Add(childGroup); + group.Children.Add(emptyChildGroup); + group.Children.Add(invalidCalculation); - var assessmentSectionMock = mocks.StrictMock(); + var pipingFailureMechanism = new PipingFailureMechanism(); + pipingFailureMechanism.AddSection(new FailureMechanismSection("A", new[] + { + new Point2D(0, 0) + })); - var nodeData = new PipingCalculationGroupContext(group, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); - var parentNodeData = new PipingCalculationGroupContext(parentGroup, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); + var assessmentSectionMock = mocks.StrictMock(); - assessmentSectionMock.Stub(s => s.FailureMechanismContribution).Return(new FailureMechanismContribution(Enumerable.Empty(), 30, 20000)); + var nodeData = new PipingCalculationGroupContext(group, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); + var parentNodeData = new PipingCalculationGroupContext(parentGroup, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); - gui.Expect(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); - gui.Expect(g => g.MainWindow).Return(mainWindow); + assessmentSectionMock.Stub(s => s.FailureMechanismContribution).Return(new FailureMechanismContribution(Enumerable.Empty(), 30, 20000)); - mocks.ReplayAll(); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - plugin.Gui = gui; + var gui = mocks.StrictMock(); + gui.Expect(g => g.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Expect(g => g.MainWindow).Return(mainWindow); - var contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl); + mocks.ReplayAll(); - DialogBoxHandler = (name, wnd) => - { - // Expect an activity dialog which is automatically closed - }; + plugin.Gui = gui; - // Call - contextMenu.Items[contextMenuCalculateAllIndex].PerformClick(); + var contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl); + DialogBoxHandler = (name, wnd) => + { + // Expect an activity dialog which is automatically closed + }; + + // Call + contextMenu.Items[contextMenuCalculateAllIndex].PerformClick(); + } // Assert mocks.VerifyAll(); } @@ -890,372 +916,372 @@ public void ContextMenuStrip_ClickOnClearOutputItem_ClearOutputAllChildCalculationsAndNotifyCalculationObservers(bool confirm) { // Setup - var gui = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - - var calculation1Observer = mocks.StrictMock(); - var calculation2Observer = mocks.StrictMock(); - - if (confirm) + using (var treeViewControl = new TreeViewControl()) { - calculation1Observer.Expect(o => o.UpdateObserver()); - calculation2Observer.Expect(o => o.UpdateObserver()); - } + var calculation1Observer = mocks.StrictMock(); + var calculation2Observer = mocks.StrictMock(); + if (confirm) + { + calculation1Observer.Expect(o => o.UpdateObserver()); + calculation2Observer.Expect(o => o.UpdateObserver()); + } - var calculation1 = PipingCalculationFactory.CreateCalculationWithValidInput(); - calculation1.Name = "A"; - calculation1.Output = new TestPipingOutput(); - calculation1.Attach(calculation1Observer); - var calculation2 = PipingCalculationFactory.CreateCalculationWithValidInput(); - calculation2.Name = "B"; - calculation2.Output = new TestPipingOutput(); - calculation1.Attach(calculation2Observer); + var calculation1 = PipingCalculationFactory.CreateCalculationWithValidInput(); + calculation1.Name = "A"; + calculation1.Output = new TestPipingOutput(); + calculation1.Attach(calculation1Observer); + var calculation2 = PipingCalculationFactory.CreateCalculationWithValidInput(); + calculation2.Name = "B"; + calculation2.Output = new TestPipingOutput(); + calculation1.Attach(calculation2Observer); - var childGroup = new CalculationGroup(); - childGroup.Children.Add(calculation1); + var childGroup = new CalculationGroup(); + childGroup.Children.Add(calculation1); - var emptyChildGroup = new CalculationGroup(); - var group = new CalculationGroup(); - var parentGroup = new CalculationGroup(); + var emptyChildGroup = new CalculationGroup(); + var group = new CalculationGroup(); + var parentGroup = new CalculationGroup(); - group.Children.Add(childGroup); - group.Children.Add(emptyChildGroup); - group.Children.Add(calculation2); + group.Children.Add(childGroup); + group.Children.Add(emptyChildGroup); + group.Children.Add(calculation2); - var pipingFailureMechanism = new PipingFailureMechanism(); - var assessmentSectionMock = mocks.StrictMock(); + var pipingFailureMechanism = new PipingFailureMechanism(); + var assessmentSectionMock = mocks.StrictMock(); - var nodeData = new PipingCalculationGroupContext(group, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); - var parentNodeData = new PipingCalculationGroupContext(parentGroup, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); + var nodeData = new PipingCalculationGroupContext(group, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); + var parentNodeData = new PipingCalculationGroupContext(parentGroup, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); - gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - mocks.ReplayAll(); + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); - plugin.Gui = gui; + mocks.ReplayAll(); - string messageBoxTitle = null, messageBoxText = null; - DialogBoxHandler = (name, wnd) => - { - var messageBox = new MessageBoxTester(wnd); + plugin.Gui = gui; - messageBoxText = messageBox.Text; - messageBoxTitle = messageBox.Title; - - if (confirm) + string messageBoxTitle = null, messageBoxText = null; + DialogBoxHandler = (name, wnd) => { - messageBox.ClickOk(); - } - else - { - messageBox.ClickCancel(); - } - }; - var contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl); + var messageBox = new MessageBoxTester(wnd); - // Call - contextMenu.Items[contextMenuClearOutputIndex].PerformClick(); + messageBoxText = messageBox.Text; + messageBoxTitle = messageBox.Title; - // Assert - Assert.AreNotEqual(confirm, calculation1.HasOutput); - Assert.AreNotEqual(confirm, calculation2.HasOutput); + if (confirm) + { + messageBox.ClickOk(); + } + else + { + messageBox.ClickCancel(); + } + }; + var contextMenu = info.ContextMenuStrip(nodeData, parentNodeData, treeViewControl); - Assert.AreEqual("Bevestigen", messageBoxTitle); - Assert.AreEqual("Weet u zeker dat u alle uitvoer wilt wissen?", messageBoxText); + // Call + contextMenu.Items[contextMenuClearOutputIndex].PerformClick(); + + // Assert + Assert.AreNotEqual(confirm, calculation1.HasOutput); + Assert.AreNotEqual(confirm, calculation2.HasOutput); + + Assert.AreEqual("Bevestigen", messageBoxTitle); + Assert.AreEqual("Weet u zeker dat u alle uitvoer wilt wissen?", messageBoxText); + } mocks.VerifyAll(); } [Test] public void ContextMenuStrip_ClickOnGenerateCalculationsItemWithSurfaceLinesAndSoilModels_ShowSurfaceLineSelectionView() { // Setup - var gui = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + using (var treeViewControl = new TreeViewControl()) + { + var group = new CalculationGroup(); - var group = new CalculationGroup(); + var pipingFailureMechanism = new PipingFailureMechanism(); + var assessmentSectionMock = mocks.StrictMock(); - var pipingFailureMechanism = new PipingFailureMechanism(); - var assessmentSectionMock = mocks.StrictMock(); - - var mainWindow = mocks.Stub(); - - var surfaceLines = new[] - { - new RingtoetsPipingSurfaceLine + var surfaceLines = new[] { - Name = "surfaceLine1" - }, - new RingtoetsPipingSurfaceLine - { - Name = "surfaceLine2" - } - }; - var nodeData = new PipingCalculationGroupContext(group, - surfaceLines, - new[] - { - new TestStochasticSoilModel() - }, - pipingFailureMechanism, - assessmentSectionMock); + new RingtoetsPipingSurfaceLine + { + Name = "surfaceLine1" + }, + new RingtoetsPipingSurfaceLine + { + Name = "surfaceLine2" + } + }; + var nodeData = new PipingCalculationGroupContext(group, + surfaceLines, + new[] + { + new TestStochasticSoilModel() + }, + pipingFailureMechanism, + assessmentSectionMock); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + var mainWindow = mocks.Stub(); - gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); - gui.Expect(g => g.MainWindow).Return(mainWindow); + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Expect(g => g.MainWindow).Return(mainWindow); - mocks.ReplayAll(); + mocks.ReplayAll(); - plugin.Gui = gui; + plugin.Gui = gui; - PipingSurfaceLineSelectionDialog selectionDialog = null; - DataGridView grid = null; - DialogBoxHandler = (name, wnd) => - { - selectionDialog = new FormTester(name).TheObject as PipingSurfaceLineSelectionDialog; - grid = new ControlTester("SurfaceLineDataGrid", selectionDialog).TheObject as DataGridView; + PipingSurfaceLineSelectionDialog selectionDialog = null; + DataGridView grid = null; + DialogBoxHandler = (name, wnd) => + { + selectionDialog = (PipingSurfaceLineSelectionDialog)new FormTester(name).TheObject; + grid = (DataGridView)new ControlTester("SurfaceLineDataGrid", selectionDialog).TheObject; - new ButtonTester("CustomCancelButton", selectionDialog).Click(); - }; + new ButtonTester("CustomCancelButton", selectionDialog).Click(); + }; - var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); + var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); - // Call - contextMenu.Items[contextMenuAddGenerateCalculationsIndex].PerformClick(); + // Call + contextMenu.Items[contextMenuAddGenerateCalculationsIndex].PerformClick(); - // Assert - Assert.NotNull(selectionDialog); - Assert.NotNull(grid); - Assert.AreEqual(2, grid.RowCount); - + // Assert + Assert.NotNull(selectionDialog); + Assert.NotNull(grid); + Assert.AreEqual(2, grid.RowCount); + } mocks.VerifyAll(); } [Test] public void GivenPipingCalculationsViewGenerateScenariosButtonClicked_WhenSurfaceLineSelectedAndDialogClosed_ThenUpdateSectionResultScenarios() { // Given - var gui = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - - var pipingFailureMechanism = new PipingFailureMechanism(); - var assessmentSectionMock = mocks.StrictMock(); - - var mainWindow = mocks.Stub(); - - var surfaceLine1 = new RingtoetsPipingSurfaceLine + using (var treeViewControl = new TreeViewControl()) { - Name = "Surface line 1", - ReferenceLineIntersectionWorldPoint = new Point2D(0.0, 0.0) - }; + var pipingFailureMechanism = new PipingFailureMechanism(); + var assessmentSectionMock = mocks.StrictMock(); - surfaceLine1.SetGeometry(new[] - { - new Point3D(0.0, 5.0, 0.0), - new Point3D(0.0, 0.0, 1.0), - new Point3D(0.0, -5.0, 0.0) - }); + var surfaceLine1 = new RingtoetsPipingSurfaceLine + { + Name = "Surface line 1", + ReferenceLineIntersectionWorldPoint = new Point2D(0.0, 0.0) + }; - var surfaceLine2 = new RingtoetsPipingSurfaceLine - { - Name = "Surface line 2", - ReferenceLineIntersectionWorldPoint = new Point2D(5.0, 0.0) - }; + surfaceLine1.SetGeometry(new[] + { + new Point3D(0.0, 5.0, 0.0), + new Point3D(0.0, 0.0, 1.0), + new Point3D(0.0, -5.0, 0.0) + }); - surfaceLine2.SetGeometry(new[] - { - new Point3D(5.0, 5.0, 0.0), - new Point3D(5.0, 0.0, 1.0), - new Point3D(5.0, -5.0, 0.0) - }); + var surfaceLine2 = new RingtoetsPipingSurfaceLine + { + Name = "Surface line 2", + ReferenceLineIntersectionWorldPoint = new Point2D(5.0, 0.0) + }; - var surfaceLines = new[] - { - surfaceLine1, - surfaceLine2 - }; - pipingFailureMechanism.AddSection(new FailureMechanismSection("Section 1", new List - { - new Point2D(0.0, 0.0), - new Point2D(5.0, 0.0) - })); + surfaceLine2.SetGeometry(new[] + { + new Point3D(5.0, 5.0, 0.0), + new Point3D(5.0, 0.0, 1.0), + new Point3D(5.0, -5.0, 0.0) + }); - pipingFailureMechanism.AddSection(new FailureMechanismSection("Section 2", new List - { - new Point2D(5.0, 0.0), - new Point2D(10.0, 0.0) - })); + var surfaceLines = new[] + { + surfaceLine1, + surfaceLine2 + }; + pipingFailureMechanism.AddSection(new FailureMechanismSection("Section 1", new List + { + new Point2D(0.0, 0.0), + new Point2D(5.0, 0.0) + })); - var nodeData = new PipingCalculationGroupContext(pipingFailureMechanism.CalculationsGroup, - surfaceLines, - new[] - { - new TestStochasticSoilModel + pipingFailureMechanism.AddSection(new FailureMechanismSection("Section 2", new List + { + new Point2D(5.0, 0.0), + new Point2D(10.0, 0.0) + })); + + var nodeData = new PipingCalculationGroupContext(pipingFailureMechanism.CalculationsGroup, + surfaceLines, + new[] { - Geometry = + new TestStochasticSoilModel { - new Point2D(0.0, 0.0), new Point2D(5.0, 0.0) - }, - } - }, - pipingFailureMechanism, - assessmentSectionMock); + Geometry = + { + new Point2D(0.0, 0.0), new Point2D(5.0, 0.0) + }, + } + }, + pipingFailureMechanism, + assessmentSectionMock); - gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); - gui.Expect(g => g.MainWindow).Return(mainWindow); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + var mainWindow = mocks.Stub(); - mocks.ReplayAll(); + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Expect(g => g.MainWindow).Return(mainWindow); - plugin.Gui = gui; + mocks.ReplayAll(); - DialogBoxHandler = (name, wnd) => - { - var selectionDialog = new FormTester(name).TheObject as PipingSurfaceLineSelectionDialog; - var grid = new ControlTester("SurfaceLineDataGrid", selectionDialog).TheObject as DataGridView; + plugin.Gui = gui; - grid.Rows[0].Cells[0].Value = true; + DialogBoxHandler = (name, wnd) => + { + var selectionDialog = (PipingSurfaceLineSelectionDialog)new FormTester(name).TheObject; + var grid = (DataGridView)new ControlTester("SurfaceLineDataGrid", selectionDialog).TheObject; - new ButtonTester("OkButton", selectionDialog).Click(); - }; + grid.Rows[0].Cells[0].Value = true; - var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); + new ButtonTester("OkButton", selectionDialog).Click(); + }; - // When - contextMenu.Items[contextMenuAddGenerateCalculationsIndex].PerformClick(); + var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); - // Then - var failureMechanismSectionResult1 = pipingFailureMechanism.SectionResults.First(); - var failureMechanismSectionResult2 = pipingFailureMechanism.SectionResults.ElementAt(1); + // When + contextMenu.Items[contextMenuAddGenerateCalculationsIndex].PerformClick(); - var pipingCalculationScenarios = pipingFailureMechanism.Calculations.OfType().ToArray(); - Assert.AreEqual(2, failureMechanismSectionResult1.GetCalculationScenarios(pipingCalculationScenarios).Count()); + // Then + var failureMechanismSectionResult1 = pipingFailureMechanism.SectionResults.First(); + var failureMechanismSectionResult2 = pipingFailureMechanism.SectionResults.ElementAt(1); - foreach (var calculationScenario in failureMechanismSectionResult1.GetCalculationScenarios(pipingCalculationScenarios)) - { - Assert.IsInstanceOf(calculationScenario); - } + var pipingCalculationScenarios = pipingFailureMechanism.Calculations.OfType().ToArray(); + Assert.AreEqual(2, failureMechanismSectionResult1.GetCalculationScenarios(pipingCalculationScenarios).Count()); - CollectionAssert.IsEmpty(failureMechanismSectionResult2.GetCalculationScenarios(pipingCalculationScenarios)); + foreach (var calculationScenario in failureMechanismSectionResult1.GetCalculationScenarios(pipingCalculationScenarios)) + { + Assert.IsInstanceOf(calculationScenario); + } + CollectionAssert.IsEmpty(failureMechanismSectionResult2.GetCalculationScenarios(pipingCalculationScenarios)); + } mocks.VerifyAll(); } [Test] public void GivenPipingCalculationsViewGenerateScenariosButtonClicked_WhenCancelButtonClickedAndDialogClosed_ThenSectionResultScenariosNotUpdated() { // Given - var gui = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + using (var treeViewControl = new TreeViewControl()) + { + var group = new CalculationGroup(); - var group = new CalculationGroup(); + var pipingFailureMechanism = new PipingFailureMechanism(); + var assessmentSectionMock = mocks.StrictMock(); - var pipingFailureMechanism = new PipingFailureMechanism(); - var assessmentSectionMock = mocks.StrictMock(); + var surfaceLine1 = new RingtoetsPipingSurfaceLine + { + Name = "Surface line 1", + ReferenceLineIntersectionWorldPoint = new Point2D(0.0, 0.0) + }; - var mainWindow = mocks.Stub(); + surfaceLine1.SetGeometry(new[] + { + new Point3D(0.0, 5.0, 0.0), + new Point3D(0.0, 0.0, 1.0), + new Point3D(0.0, -5.0, 0.0) + }); - var surfaceLine1 = new RingtoetsPipingSurfaceLine - { - Name = "Surface line 1", - ReferenceLineIntersectionWorldPoint = new Point2D(0.0, 0.0) - }; + var surfaceLine2 = new RingtoetsPipingSurfaceLine + { + Name = "Surface line 2", + ReferenceLineIntersectionWorldPoint = new Point2D(5.0, 0.0) + }; - surfaceLine1.SetGeometry(new[] - { - new Point3D(0.0, 5.0, 0.0), - new Point3D(0.0, 0.0, 1.0), - new Point3D(0.0, -5.0, 0.0) - }); + surfaceLine2.SetGeometry(new[] + { + new Point3D(5.0, 5.0, 0.0), + new Point3D(5.0, 0.0, 1.0), + new Point3D(5.0, -5.0, 0.0) + }); - var surfaceLine2 = new RingtoetsPipingSurfaceLine - { - Name = "Surface line 2", - ReferenceLineIntersectionWorldPoint = new Point2D(5.0, 0.0) - }; + var surfaceLines = new[] + { + surfaceLine1, + surfaceLine2 + }; + pipingFailureMechanism.AddSection(new FailureMechanismSection("Section 1", new List + { + new Point2D(0.0, 0.0), + new Point2D(5.0, 0.0) + })); - surfaceLine2.SetGeometry(new[] - { - new Point3D(5.0, 5.0, 0.0), - new Point3D(5.0, 0.0, 1.0), - new Point3D(5.0, -5.0, 0.0) - }); + pipingFailureMechanism.AddSection(new FailureMechanismSection("Section 2", new List + { + new Point2D(5.0, 0.0), + new Point2D(10.0, 0.0) + })); - var surfaceLines = new[] - { - surfaceLine1, - surfaceLine2 - }; - pipingFailureMechanism.AddSection(new FailureMechanismSection("Section 1", new List - { - new Point2D(0.0, 0.0), - new Point2D(5.0, 0.0) - })); - - pipingFailureMechanism.AddSection(new FailureMechanismSection("Section 2", new List - { - new Point2D(5.0, 0.0), - new Point2D(10.0, 0.0) - })); - - var nodeData = new PipingCalculationGroupContext(group, - surfaceLines, - new[] - { - new TestStochasticSoilModel + var nodeData = new PipingCalculationGroupContext(group, + surfaceLines, + new[] { - Geometry = + new TestStochasticSoilModel { - new Point2D(0.0, 0.0), new Point2D(5.0, 0.0) - }, - } - }, - pipingFailureMechanism, - assessmentSectionMock); + Geometry = + { + new Point2D(0.0, 0.0), new Point2D(5.0, 0.0) + }, + } + }, + pipingFailureMechanism, + assessmentSectionMock); - gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); - gui.Expect(g => g.MainWindow).Return(mainWindow); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + var mainWindow = mocks.Stub(); - mocks.ReplayAll(); + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilder); + gui.Expect(g => g.MainWindow).Return(mainWindow); - plugin.Gui = gui; + mocks.ReplayAll(); - // Precondition - foreach (var failureMechanismSectionResult in pipingFailureMechanism.SectionResults) - { - CollectionAssert.IsEmpty(failureMechanismSectionResult.GetCalculationScenarios(pipingFailureMechanism.Calculations.OfType())); - } + plugin.Gui = gui; - DialogBoxHandler = (name, wnd) => - { - var selectionDialog = new FormTester(name).TheObject as PipingSurfaceLineSelectionDialog; - var grid = new ControlTester("SurfaceLineDataGrid", selectionDialog).TheObject as DataGridView; + // Precondition + foreach (var failureMechanismSectionResult in pipingFailureMechanism.SectionResults) + { + CollectionAssert.IsEmpty(failureMechanismSectionResult.GetCalculationScenarios(pipingFailureMechanism.Calculations.OfType())); + } - grid.Rows[0].Cells[0].Value = true; + DialogBoxHandler = (name, wnd) => + { + var selectionDialog = (PipingSurfaceLineSelectionDialog)new FormTester(name).TheObject; + var grid = (DataGridView)new ControlTester("SurfaceLineDataGrid", selectionDialog).TheObject; - new ButtonTester("CustomCancelButton", selectionDialog).Click(); - }; + grid.Rows[0].Cells[0].Value = true; - var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); + new ButtonTester("CustomCancelButton", selectionDialog).Click(); + }; - // When - contextMenu.Items[contextMenuAddGenerateCalculationsIndex].PerformClick(); + var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); - // Then - foreach (var failureMechanismSectionResult in pipingFailureMechanism.SectionResults) - { - CollectionAssert.IsEmpty(failureMechanismSectionResult.GetCalculationScenarios(pipingFailureMechanism.Calculations.OfType())); - } + // When + contextMenu.Items[contextMenuAddGenerateCalculationsIndex].PerformClick(); + // Then + foreach (var failureMechanismSectionResult in pipingFailureMechanism.SectionResults) + { + CollectionAssert.IsEmpty(failureMechanismSectionResult.GetCalculationScenarios(pipingFailureMechanism.Calculations.OfType())); + } + } mocks.VerifyAll(); } Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationScenarioContextTreeNodeInfoTest.cs =================================================================== diff -u -r5e6eacaf76f765ba77febee673e9e94895e46feb -r12a35732d53e73c149035a212f96d2a0e9604cff --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationScenarioContextTreeNodeInfoTest.cs (.../PipingCalculationScenarioContextTreeNodeInfoTest.cs) (revision 5e6eacaf76f765ba77febee673e9e94895e46feb) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingCalculationScenarioContextTreeNodeInfoTest.cs (.../PipingCalculationScenarioContextTreeNodeInfoTest.cs) (revision 12a35732d53e73c149035a212f96d2a0e9604cff) @@ -22,6 +22,7 @@ using System; using System.Collections.Generic; using System.Linq; + using Core.Common.Base; using Core.Common.Base.Geometry; using Core.Common.Controls.TreeView; @@ -30,9 +31,12 @@ using Core.Common.Gui.Forms.MainWindow; using Core.Common.Gui.TestUtil.ContextMenu; using Core.Common.TestUtil; + using NUnit.Extensions.Forms; using NUnit.Framework; + using Rhino.Mocks; + using Ringtoets.Common.Data; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Calculation; @@ -45,6 +49,7 @@ using Ringtoets.Piping.KernelWrapper.TestUtil; using Ringtoets.Piping.Plugin; using Ringtoets.Piping.Primitives; + using PipingFormsResources = Ringtoets.Piping.Forms.Properties.Resources; using RingtoetsCommonFormsResources = Ringtoets.Common.Forms.Properties.Resources; @@ -123,7 +128,7 @@ Assert.IsNotNull(commentContext); Assert.AreSame(pipingCalculationContext.WrappedData, commentContext.WrappedData); - var pipingInputContext = (PipingInputContext) children[1]; + var pipingInputContext = (PipingInputContext)children[1]; Assert.AreSame(pipingCalculationContext.WrappedData.InputParameters, pipingInputContext.WrappedData); CollectionAssert.AreEqual(pipingCalculationContext.AvailablePipingSurfaceLines, pipingInputContext.AvailablePipingSurfaceLines); CollectionAssert.AreEqual(pipingCalculationContext.AvailableStochasticSoilModels, pipingInputContext.AvailableStochasticSoilModels); @@ -156,7 +161,7 @@ Assert.IsNotNull(commentContext); Assert.AreSame(pipingCalculationContext.WrappedData, commentContext.WrappedData); - var pipingInputContext = (PipingInputContext) children[1]; + var pipingInputContext = (PipingInputContext)children[1]; Assert.AreSame(pipingCalculationContext.WrappedData.InputParameters, pipingInputContext.WrappedData); CollectionAssert.AreEqual(pipingCalculationContext.AvailablePipingSurfaceLines, pipingInputContext.AvailablePipingSurfaceLines); CollectionAssert.AreEqual(pipingCalculationContext.AvailableStochasticSoilModels, pipingInputContext.AvailableStochasticSoilModels); @@ -168,191 +173,199 @@ public void ContextMenuStrip_PipingCalculationWithoutOutput_ContextMenuItemClearOutputDisabled() { // Setup - var gui = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var calculation = new PipingCalculationScenario(new GeneralPipingInput()); - var pipingFailureMechanism = new PipingFailureMechanism(); - pipingFailureMechanism.AddSection(new FailureMechanismSection("A", new[] + using (var treeViewControl = new TreeViewControl()) { - new Point2D(0, 0) - })); - var assessmentSectionMock = mocks.StrictMock(); - var nodeData = new PipingCalculationScenarioContext(calculation, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); + var calculation = new PipingCalculationScenario(new GeneralPipingInput()); + var pipingFailureMechanism = new PipingFailureMechanism(); + pipingFailureMechanism.AddSection(new FailureMechanismSection("A", new[] + { + new Point2D(0, 0) + })); + var assessmentSectionMock = mocks.StrictMock(); - gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); + var nodeData = new PipingCalculationScenarioContext(calculation, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); - mocks.ReplayAll(); + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); - plugin.Gui = gui; + mocks.ReplayAll(); - // Call - var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); + plugin.Gui = gui; - // Assert - mocks.VerifyAll(); // Expect no calls on arguments + // Call + var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); - TestHelper.AssertContextMenuStripContainsItem(contextMenu, 0, RingtoetsCommonFormsResources.Validate, RingtoetsCommonFormsResources.Validate_ToolTip, RingtoetsCommonFormsResources.ValidateIcon); - TestHelper.AssertContextMenuStripContainsItem(contextMenu, 1, RingtoetsCommonFormsResources.Calculate, RingtoetsCommonFormsResources.Calculate_ToolTip, RingtoetsCommonFormsResources.CalculateIcon); - TestHelper.AssertContextMenuStripContainsItem(contextMenu, 2, RingtoetsCommonFormsResources.Clear_output, RingtoetsCommonFormsResources.ClearOutput_No_output_to_clear, RingtoetsCommonFormsResources.ClearIcon, false); + // Assert + TestHelper.AssertContextMenuStripContainsItem(contextMenu, 0, RingtoetsCommonFormsResources.Validate, RingtoetsCommonFormsResources.Validate_ToolTip, RingtoetsCommonFormsResources.ValidateIcon); + TestHelper.AssertContextMenuStripContainsItem(contextMenu, 1, RingtoetsCommonFormsResources.Calculate, RingtoetsCommonFormsResources.Calculate_ToolTip, RingtoetsCommonFormsResources.CalculateIcon); + TestHelper.AssertContextMenuStripContainsItem(contextMenu, 2, RingtoetsCommonFormsResources.Clear_output, RingtoetsCommonFormsResources.ClearOutput_No_output_to_clear, RingtoetsCommonFormsResources.ClearIcon, false); + } + mocks.VerifyAll(); // Expect no calls on arguments } [Test] public void ContextMenuStrip_PipingCalculationWithOutput_ContextMenuItemClearOutputEnabled() { // Setup - var gui = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var calculation = new PipingCalculationScenario(new GeneralPipingInput()) + using (var treeViewControl = new TreeViewControl()) { - Output = new TestPipingOutput() - }; - var pipingFailureMechanism = new PipingFailureMechanism(); - pipingFailureMechanism.AddSection(new FailureMechanismSection("A", new[] - { - new Point2D(0, 0) - })); - var assessmentSectionMock = mocks.StrictMock(); - var nodeData = new PipingCalculationScenarioContext(calculation, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); + var calculation = new PipingCalculationScenario(new GeneralPipingInput()) + { + Output = new TestPipingOutput() + }; + var pipingFailureMechanism = new PipingFailureMechanism(); + pipingFailureMechanism.AddSection(new FailureMechanismSection("A", new[] + { + new Point2D(0, 0) + })); + var assessmentSectionMock = mocks.StrictMock(); - gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); + var nodeData = new PipingCalculationScenarioContext(calculation, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); - mocks.ReplayAll(); + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); - plugin.Gui = gui; + mocks.ReplayAll(); - // Call - var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); + plugin.Gui = gui; - // Assert - mocks.VerifyAll(); // Expect no calls on arguments + // Call + var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); - TestHelper.AssertContextMenuStripContainsItem(contextMenu, 0, RingtoetsCommonFormsResources.Validate, RingtoetsCommonFormsResources.Validate_ToolTip, RingtoetsCommonFormsResources.ValidateIcon); - TestHelper.AssertContextMenuStripContainsItem(contextMenu, 1, RingtoetsCommonFormsResources.Calculate, RingtoetsCommonFormsResources.Calculate_ToolTip, RingtoetsCommonFormsResources.CalculateIcon); - TestHelper.AssertContextMenuStripContainsItem(contextMenu, 2, RingtoetsCommonFormsResources.Clear_output, RingtoetsCommonFormsResources.Clear_output_ToolTip, RingtoetsCommonFormsResources.ClearIcon); + // Assert + TestHelper.AssertContextMenuStripContainsItem(contextMenu, 0, RingtoetsCommonFormsResources.Validate, RingtoetsCommonFormsResources.Validate_ToolTip, RingtoetsCommonFormsResources.ValidateIcon); + TestHelper.AssertContextMenuStripContainsItem(contextMenu, 1, RingtoetsCommonFormsResources.Calculate, RingtoetsCommonFormsResources.Calculate_ToolTip, RingtoetsCommonFormsResources.CalculateIcon); + TestHelper.AssertContextMenuStripContainsItem(contextMenu, 2, RingtoetsCommonFormsResources.Clear_output, RingtoetsCommonFormsResources.Clear_output_ToolTip, RingtoetsCommonFormsResources.ClearIcon); + } + mocks.VerifyAll(); // Expect no calls on arguments } [Test] public void ContextMenuStrip_NoFailureMechanismSections_ContextMenuItemPerformCalculationDisabledAndTooltipSet() { // Setup - var gui = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var calculation = new PipingCalculationScenario(new GeneralPipingInput()); - var failureMechanism = new PipingFailureMechanism(); + using (var treeViewControl = new TreeViewControl()) + { + var calculation = new PipingCalculationScenario(new GeneralPipingInput()); + var failureMechanism = new PipingFailureMechanism(); + var assessmentSectionMock = mocks.StrictMock(); - var assessmentSectionMock = mocks.StrictMock(); - var nodeData = new PipingCalculationScenarioContext(calculation, - Enumerable.Empty(), - Enumerable.Empty(), - failureMechanism, - assessmentSectionMock); + var nodeData = new PipingCalculationScenarioContext(calculation, + Enumerable.Empty(), + Enumerable.Empty(), + failureMechanism, + assessmentSectionMock); - gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); - mocks.ReplayAll(); + mocks.ReplayAll(); - plugin.Gui = gui; + plugin.Gui = gui; - // Call - var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); + // Call + var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); - // Assert + // Assert + TestHelper.AssertContextMenuStripContainsItem(contextMenu, + 1, + RingtoetsCommonFormsResources.Calculate, + RingtoetsCommonFormsResources.GuiPlugin_AllDataAvailable_No_failure_mechanism_sections_imported, + RingtoetsCommonFormsResources.CalculateIcon, + false); + } mocks.VerifyAll(); // Expect no calls on arguments - - TestHelper.AssertContextMenuStripContainsItem(contextMenu, - 1, - RingtoetsCommonFormsResources.Calculate, - RingtoetsCommonFormsResources.GuiPlugin_AllDataAvailable_No_failure_mechanism_sections_imported, - RingtoetsCommonFormsResources.CalculateIcon, - false); } [Test] public void ContextMenuStrip_FailureMechanismSectionsSet_ContextMenuItemPerformCalculationEnabled() { // Setup - var gui = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var calculation = new PipingCalculationScenario(new GeneralPipingInput()); - var failureMechanism = new PipingFailureMechanism(); - failureMechanism.AddSection(new FailureMechanismSection("test", new[] + using (var treeViewControl = new TreeViewControl()) { - new Point2D(0, 0) - })); + var calculation = new PipingCalculationScenario(new GeneralPipingInput()); + var failureMechanism = new PipingFailureMechanism(); + failureMechanism.AddSection(new FailureMechanismSection("test", new[] + { + new Point2D(0, 0) + })); + var assessmentSectionMock = mocks.StrictMock(); - var assessmentSectionMock = mocks.StrictMock(); - var nodeData = new PipingCalculationScenarioContext(calculation, - Enumerable.Empty(), - Enumerable.Empty(), - failureMechanism, - assessmentSectionMock); + var nodeData = new PipingCalculationScenarioContext(calculation, + Enumerable.Empty(), + Enumerable.Empty(), + failureMechanism, + assessmentSectionMock); - gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); - mocks.ReplayAll(); + mocks.ReplayAll(); - plugin.Gui = gui; + plugin.Gui = gui; - // Call - var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); + // Call + var contextMenu = info.ContextMenuStrip(nodeData, null, treeViewControl); - // Assert + // Assert + TestHelper.AssertContextMenuStripContainsItem(contextMenu, + 1, + RingtoetsCommonFormsResources.Calculate, + RingtoetsCommonFormsResources.Calculate_ToolTip, + RingtoetsCommonFormsResources.CalculateIcon); + } mocks.VerifyAll(); // Expect no calls on arguments - - TestHelper.AssertContextMenuStripContainsItem(contextMenu, - 1, - RingtoetsCommonFormsResources.Calculate, - RingtoetsCommonFormsResources.Calculate_ToolTip, - RingtoetsCommonFormsResources.CalculateIcon); } [Test] public void ContextMenuStrip_Always_CallsContextMenuBuilderMethods() { // Setup - var gui = mocks.StrictMock(); - var menuBuilderMock = mocks.Stub(); - var treeViewControl = new TreeViewControl(); - var pipingFailureMechanism = new PipingFailureMechanism(); - var assessmentSectionMock = mocks.StrictMock(); - var nodeData = new PipingCalculationScenarioContext(new PipingCalculationScenario(new GeneralPipingInput()), - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); + using (var treeViewControl = new TreeViewControl()) + { + var pipingFailureMechanism = new PipingFailureMechanism(); + var assessmentSectionMock = mocks.StrictMock(); + var nodeData = new PipingCalculationScenarioContext(new PipingCalculationScenario(new GeneralPipingInput()), + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); - menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().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.AddDeleteItem()).Return(menuBuilderMock); - menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); - 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.AddExpandAllItem()).Return(menuBuilderMock); - menuBuilderMock.Expect(mb => mb.AddCollapseAllItem()).Return(menuBuilderMock); - menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); - menuBuilderMock.Expect(mb => mb.AddPropertiesItem()).Return(menuBuilderMock); - menuBuilderMock.Expect(mb => mb.Build()).Return(null); + var menuBuilderMock = mocks.Stub(); + menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().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.AddDeleteItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + 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.AddExpandAllItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddCollapseAllItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddSeparator()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.AddPropertiesItem()).Return(menuBuilderMock); + menuBuilderMock.Expect(mb => mb.Build()).Return(null); - gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilderMock); + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(nodeData, treeViewControl)).Return(menuBuilderMock); - mocks.ReplayAll(); + mocks.ReplayAll(); - plugin.Gui = gui; + plugin.Gui = gui; - // Call - info.ContextMenuStrip(nodeData, null, treeViewControl); + // Call + info.ContextMenuStrip(nodeData, null, treeViewControl); + } // Assert mocks.VerifyAll(); // Expect no calls on arguments @@ -464,169 +477,175 @@ public void GivenInvalidPipingCalculation_WhenCalculatingFromContextMenu_ThenPipingCalculationNotifiesObserversAndLogMessageAdded() { // Given - var gui = mocks.DynamicMock(); - var mainWindow = mocks.DynamicMock(); - var observer = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var calculation = new PipingCalculationScenario(new GeneralPipingInput()); - var pipingFailureMechanism = new PipingFailureMechanism(); - pipingFailureMechanism.AddSection(new FailureMechanismSection("A", new[] + using (var treeViewControl = new TreeViewControl()) { - new Point2D(0, 0) - })); - var assessmentSectionMock = mocks.StrictMock(); - var pipingCalculationContext = new PipingCalculationScenarioContext(calculation, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); + var calculation = new PipingCalculationScenario(new GeneralPipingInput()); + var pipingFailureMechanism = new PipingFailureMechanism(); + pipingFailureMechanism.AddSection(new FailureMechanismSection("A", new[] + { + new Point2D(0, 0) + })); + var assessmentSectionMock = mocks.StrictMock(); + assessmentSectionMock.Stub(s => s.FailureMechanismContribution).Return(new FailureMechanismContribution(Enumerable.Empty(), 30, 20000)); - observer.Expect(o => o.UpdateObserver()); + var pipingCalculationContext = new PipingCalculationScenarioContext(calculation, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); - assessmentSectionMock.Stub(s => s.FailureMechanismContribution).Return(new FailureMechanismContribution(Enumerable.Empty(), 30, 20000)); - gui.Expect(cmp => cmp.Get(pipingCalculationContext, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); - gui.Expect(g => g.MainWindow).Return(mainWindow); + var mainWindow = mocks.DynamicMock(); - var expectedValidationMessageCount = 2; // No surfaceline or soil profile selected for calculation - var calculateContextMenuItemIndex = 1; + var gui = mocks.DynamicMock(); + gui.Expect(cmp => cmp.Get(pipingCalculationContext, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); + gui.Expect(g => g.MainWindow).Return(mainWindow); - mocks.ReplayAll(); + var observer = mocks.StrictMock(); + observer.Expect(o => o.UpdateObserver()); - plugin.Gui = gui; + mocks.ReplayAll(); - calculation.Attach(observer); + plugin.Gui = gui; - var contextMenuAdapter = info.ContextMenuStrip(pipingCalculationContext, null, treeViewControl); + calculation.Attach(observer); - DialogBoxHandler = (name, wnd) => - { - // Expect an activity dialog which is automatically closed - }; + var contextMenuAdapter = info.ContextMenuStrip(pipingCalculationContext, null, treeViewControl); - // When - Action action = () => { contextMenuAdapter.Items[calculateContextMenuItemIndex].PerformClick(); }; + DialogBoxHandler = (name, wnd) => + { + // Expect an activity dialog which is automatically closed + }; - // Then - TestHelper.AssertLogMessages(action, messages => - { - var msgs = messages.GetEnumerator(); - Assert.IsTrue(msgs.MoveNext()); - StringAssert.StartsWith("Validatie van 'Nieuwe berekening' gestart om: ", msgs.Current); - for (int i = 0; i < expectedValidationMessageCount; i++) + // When + var calculateContextMenuItemIndex = 1; + Action action = () => { contextMenuAdapter.Items[calculateContextMenuItemIndex].PerformClick(); }; + + // Then + var expectedValidationMessageCount = 2; // No surfaceline or soil profile selected for calculation + TestHelper.AssertLogMessages(action, messages => { + var msgs = messages.GetEnumerator(); Assert.IsTrue(msgs.MoveNext()); - StringAssert.StartsWith("Validatie mislukt: ", msgs.Current); - } - Assert.IsTrue(msgs.MoveNext()); - StringAssert.StartsWith("Validatie van 'Nieuwe berekening' beëindigd om: ", msgs.Current); - }); - Assert.IsNull(calculation.Output); - + StringAssert.StartsWith("Validatie van 'Nieuwe berekening' gestart om: ", msgs.Current); + for (int i = 0; i < expectedValidationMessageCount; i++) + { + Assert.IsTrue(msgs.MoveNext()); + StringAssert.StartsWith("Validatie mislukt: ", msgs.Current); + } + Assert.IsTrue(msgs.MoveNext()); + StringAssert.StartsWith("Validatie van 'Nieuwe berekening' beëindigd om: ", msgs.Current); + }); + Assert.IsNull(calculation.Output); + } mocks.VerifyAll(); } [Test] public void GivenInvalidPipingCalculation_WhenValidatingFromContextMenu_ThenLogMessageAddedAndNoNotifyObserver() { // Given - var gui = mocks.DynamicMock(); - var observer = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var calculation = new PipingCalculationScenario(new GeneralPipingInput()); - var pipingFailureMechanism = new PipingFailureMechanism(); - var assessmentSectionMock = mocks.StrictMock(); - var pipingCalculationContext = new PipingCalculationScenarioContext(calculation, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); + using (var treeViewControl = new TreeViewControl()) + { + var calculation = new PipingCalculationScenario(new GeneralPipingInput()); + var pipingFailureMechanism = new PipingFailureMechanism(); + var assessmentSectionMock = mocks.StrictMock(); - gui.Expect(cmp => cmp.Get(pipingCalculationContext, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); + var pipingCalculationContext = new PipingCalculationScenarioContext(calculation, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); - var expectedValidationMessageCount = 2; // No surfaceline or soil profile selected for calculation - var expectedStatusMessageCount = 2; - var expectedLogMessageCount = expectedValidationMessageCount + expectedStatusMessageCount; + var gui = mocks.DynamicMock(); + gui.Expect(cmp => cmp.Get(pipingCalculationContext, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); - var validateContextMenuItemIndex = 0; - observer.Expect(o => o.UpdateObserver()).Repeat.Never(); + var observer = mocks.StrictMock(); + observer.Expect(o => o.UpdateObserver()).Repeat.Never(); - mocks.ReplayAll(); + mocks.ReplayAll(); - plugin.Gui = gui; + plugin.Gui = gui; - calculation.Attach(observer); + calculation.Attach(observer); - var contextMenuAdapter = info.ContextMenuStrip(pipingCalculationContext, null, treeViewControl); + var contextMenuAdapter = info.ContextMenuStrip(pipingCalculationContext, null, treeViewControl); - // When - Action action = () => contextMenuAdapter.Items[validateContextMenuItemIndex].PerformClick(); + // When + var validateContextMenuItemIndex = 0; + Action action = () => contextMenuAdapter.Items[validateContextMenuItemIndex].PerformClick(); - // Then - TestHelper.AssertLogMessagesCount(action, expectedLogMessageCount); - + // Then + var expectedValidationMessageCount = 2; // No surfaceline or soil profile selected for calculation + var expectedStatusMessageCount = 2; + var expectedLogMessageCount = expectedValidationMessageCount + expectedStatusMessageCount; + TestHelper.AssertLogMessagesCount(action, expectedLogMessageCount); + } mocks.VerifyAll(); } [Test] public void GivenValidPipingCalculation_WhenCalculatingFromContextMenu_ThenPipingCalculationNotifiesObservers() { // Given - var gui = mocks.DynamicMock(); - var mainWindow = mocks.DynamicMock(); - var observer = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var calculateContextMenuItemIndex = 1; - var calculation = PipingCalculationFactory.CreateCalculationWithValidInput(); - var pipingFailureMechanism = new PipingFailureMechanism(); - pipingFailureMechanism.AddSection(new FailureMechanismSection("A", new[] + using (var treeViewControl = new TreeViewControl()) { - new Point2D(0, 0) - })); - var assessmentSectionMock = mocks.StrictMock(); - var pipingCalculationContext = new PipingCalculationScenarioContext(calculation, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); + var calculation = PipingCalculationFactory.CreateCalculationWithValidInput(); + var pipingFailureMechanism = new PipingFailureMechanism(); + pipingFailureMechanism.AddSection(new FailureMechanismSection("A", new[] + { + new Point2D(0, 0) + })); + var assessmentSectionMock = mocks.StrictMock(); + assessmentSectionMock.Stub(s => s.FailureMechanismContribution).Return(new FailureMechanismContribution(Enumerable.Empty(), 30, 20000)); - assessmentSectionMock.Stub(s => s.FailureMechanismContribution).Return(new FailureMechanismContribution(Enumerable.Empty(), 30, 20000)); - gui.Expect(g => g.Get(pipingCalculationContext, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); - gui.Expect(g => g.MainWindow).Return(mainWindow); + var pipingCalculationContext = new PipingCalculationScenarioContext(calculation, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); - observer.Expect(o => o.UpdateObserver()); + var mainWindow = mocks.DynamicMock(); - mocks.ReplayAll(); + var gui = mocks.DynamicMock(); + gui.Expect(g => g.Get(pipingCalculationContext, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); + gui.Expect(g => g.MainWindow).Return(mainWindow); - plugin.Gui = gui; + var observer = mocks.StrictMock(); + observer.Expect(o => o.UpdateObserver()); - calculation.Attach(observer); + mocks.ReplayAll(); - var contextMenuAdapter = info.ContextMenuStrip(pipingCalculationContext, null, treeViewControl); + plugin.Gui = gui; - DialogBoxHandler = (name, wnd) => - { - // Expect an activity dialog which is automatically closed - }; + calculation.Attach(observer); - // When - Action action = () => { contextMenuAdapter.Items[calculateContextMenuItemIndex].PerformClick(); }; + var contextMenuAdapter = info.ContextMenuStrip(pipingCalculationContext, null, treeViewControl); - // Then - TestHelper.AssertLogMessages(action, messages => - { - var msgs = messages.GetEnumerator(); - Assert.IsTrue(msgs.MoveNext()); - StringAssert.StartsWith("Validatie van 'Nieuwe berekening' gestart om: ", msgs.Current); - Assert.IsTrue(msgs.MoveNext()); - StringAssert.StartsWith("Validatie van 'Nieuwe berekening' beëindigd om: ", msgs.Current); + DialogBoxHandler = (name, wnd) => + { + // Expect an activity dialog which is automatically closed + }; - Assert.IsTrue(msgs.MoveNext()); - StringAssert.StartsWith("Berekening van 'Nieuwe berekening' gestart om: ", msgs.Current); - Assert.IsTrue(msgs.MoveNext()); - StringAssert.StartsWith("Berekening van 'Nieuwe berekening' beëindigd om: ", msgs.Current); - }); - Assert.IsNotNull(calculation.Output); + // When + var calculateContextMenuItemIndex = 1; + Action action = () => { contextMenuAdapter.Items[calculateContextMenuItemIndex].PerformClick(); }; + // Then + TestHelper.AssertLogMessages(action, messages => + { + var msgs = messages.GetEnumerator(); + Assert.IsTrue(msgs.MoveNext()); + StringAssert.StartsWith("Validatie van 'Nieuwe berekening' gestart om: ", msgs.Current); + Assert.IsTrue(msgs.MoveNext()); + StringAssert.StartsWith("Validatie van 'Nieuwe berekening' beëindigd om: ", msgs.Current); + + Assert.IsTrue(msgs.MoveNext()); + StringAssert.StartsWith("Berekening van 'Nieuwe berekening' gestart om: ", msgs.Current); + Assert.IsTrue(msgs.MoveNext()); + StringAssert.StartsWith("Berekening van 'Nieuwe berekening' beëindigd om: ", msgs.Current); + }); + Assert.IsNotNull(calculation.Output); + } mocks.VerifyAll(); } @@ -636,58 +655,61 @@ public void GivenPipingCalculationWithOutput_WhenClearingOutputFromContextMenu_ThenPipingCalculationOutputClearedAndNotified(bool confirm) { // Given - var gui = mocks.DynamicMock(); - var observer = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var calculation = new PipingCalculationScenario(new GeneralPipingInput()); - var pipingFailureMechanism = new PipingFailureMechanism(); - var assessmentSectionMock = mocks.StrictMock(); - var pipingCalculationContext = new PipingCalculationScenarioContext(calculation, - Enumerable.Empty(), - Enumerable.Empty(), - pipingFailureMechanism, - assessmentSectionMock); + using (var treeViewControl = new TreeViewControl()) + { + var calculation = new PipingCalculationScenario(new GeneralPipingInput()); + var pipingFailureMechanism = new PipingFailureMechanism(); + var assessmentSectionMock = mocks.StrictMock(); - gui.Expect(cmp => cmp.Get(pipingCalculationContext, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); + var pipingCalculationContext = new PipingCalculationScenarioContext(calculation, + Enumerable.Empty(), + Enumerable.Empty(), + pipingFailureMechanism, + assessmentSectionMock); - int clearOutputItemPosition = 2; - if (confirm) - { - observer.Expect(o => o.UpdateObserver()); - } + var gui = mocks.DynamicMock(); + gui.Expect(cmp => cmp.Get(pipingCalculationContext, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder()); - mocks.ReplayAll(); + var observer = mocks.StrictMock(); + if (confirm) + { + observer.Expect(o => o.UpdateObserver()); + } - plugin.Gui = gui; + mocks.ReplayAll(); - calculation.Output = new TestPipingOutput(); - calculation.Attach(observer); + plugin.Gui = gui; - var contextMenuAdapter = info.ContextMenuStrip(pipingCalculationContext, null, treeViewControl); + calculation.Output = new TestPipingOutput(); + calculation.Attach(observer); - string messageBoxText = null, messageBoxTitle = null; - DialogBoxHandler = (name, wnd) => - { - var messageBox = new MessageBoxTester(wnd); - messageBoxText = messageBox.Text; - messageBoxTitle = messageBox.Title; - if (confirm) + var contextMenuAdapter = info.ContextMenuStrip(pipingCalculationContext, null, treeViewControl); + + string messageBoxText = null, messageBoxTitle = null; + DialogBoxHandler = (name, wnd) => { - messageBox.ClickOk(); - } - else - { - messageBox.ClickCancel(); - } - }; + var messageBox = new MessageBoxTester(wnd); + messageBoxText = messageBox.Text; + messageBoxTitle = messageBox.Title; + if (confirm) + { + messageBox.ClickOk(); + } + else + { + messageBox.ClickCancel(); + } + }; - // When - contextMenuAdapter.Items[clearOutputItemPosition].PerformClick(); + // When + int clearOutputItemPosition = 2; + contextMenuAdapter.Items[clearOutputItemPosition].PerformClick(); - // Then - Assert.AreNotEqual(confirm, calculation.HasOutput); - Assert.AreEqual("Bevestigen", messageBoxTitle); - Assert.AreEqual("Weet u zeker dat u de uitvoer van deze berekening wilt wissen?", messageBoxText); + // Then + Assert.AreNotEqual(confirm, calculation.HasOutput); + Assert.AreEqual("Bevestigen", messageBoxTitle); + Assert.AreEqual("Weet u zeker dat u de uitvoer van deze berekening wilt wissen?", messageBoxText); + } mocks.VerifyAll(); } Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingFailureMechanismContextTreeNodeInfoTest.cs =================================================================== diff -u -r5e6eacaf76f765ba77febee673e9e94895e46feb -r12a35732d53e73c149035a212f96d2a0e9604cff --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingFailureMechanismContextTreeNodeInfoTest.cs (.../PipingFailureMechanismContextTreeNodeInfoTest.cs) (revision 5e6eacaf76f765ba77febee673e9e94895e46feb) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/TreeNodeInfos/PipingFailureMechanismContextTreeNodeInfoTest.cs (.../PipingFailureMechanismContextTreeNodeInfoTest.cs) (revision 12a35732d53e73c149035a212f96d2a0e9604cff) @@ -22,6 +22,7 @@ using System; using System.Linq; using System.Windows.Forms; + using Core.Common.Base; using Core.Common.Base.Geometry; using Core.Common.Controls.TreeView; @@ -31,9 +32,12 @@ using Core.Common.Gui.Forms.MainWindow; using Core.Common.Gui.TestUtil.ContextMenu; using Core.Common.TestUtil; + using NUnit.Extensions.Forms; using NUnit.Framework; + using Rhino.Mocks; + using Ringtoets.Common.Data; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Calculation; @@ -45,6 +49,7 @@ using Ringtoets.Piping.Forms.PresentationObjects; using Ringtoets.Piping.KernelWrapper.TestUtil; using Ringtoets.Piping.Plugin; + using RingtoetsFormsResources = Ringtoets.Common.Forms.Properties.Resources; using RingtoetsDataResources = Ringtoets.Common.Data.Properties.Resources; using PipingFormsResources = Ringtoets.Piping.Forms.Properties.Resources; @@ -135,38 +140,38 @@ // Assert Assert.AreEqual(3, children.Length); - var inputsFolder = (CategoryTreeFolder) children[0]; + var inputsFolder = (CategoryTreeFolder)children[0]; Assert.AreEqual("Invoer", inputsFolder.Name); Assert.AreEqual(TreeFolderCategory.Input, inputsFolder.Category); Assert.AreEqual(4, inputsFolder.Contents.Count); - var failureMechanismSectionsContext = (FailureMechanismSectionsContext) inputsFolder.Contents[0]; + var failureMechanismSectionsContext = (FailureMechanismSectionsContext)inputsFolder.Contents[0]; Assert.AreSame(pipingFailureMechanism, failureMechanismSectionsContext.WrappedData); Assert.AreSame(assessmentSection, failureMechanismSectionsContext.ParentAssessmentSection); - var surfaceLinesContext = (RingtoetsPipingSurfaceLinesContext) inputsFolder.Contents[1]; + var surfaceLinesContext = (RingtoetsPipingSurfaceLinesContext)inputsFolder.Contents[1]; Assert.AreSame(pipingFailureMechanism, surfaceLinesContext.WrappedData); Assert.AreSame(assessmentSection, surfaceLinesContext.AssessmentSection); - var stochasticSoilModelContext = (StochasticSoilModelContext) inputsFolder.Contents[2]; + var stochasticSoilModelContext = (StochasticSoilModelContext)inputsFolder.Contents[2]; Assert.AreSame(pipingFailureMechanism, stochasticSoilModelContext.FailureMechanism); Assert.AreSame(assessmentSection, stochasticSoilModelContext.AssessmentSection); - var commentContext = (CommentContext) inputsFolder.Contents[3]; + var commentContext = (CommentContext)inputsFolder.Contents[3]; Assert.AreSame(pipingFailureMechanism, commentContext.WrappedData); - var calculationsFolder = (PipingCalculationGroupContext) children[1]; + var calculationsFolder = (PipingCalculationGroupContext)children[1]; Assert.AreEqual("Berekeningen", calculationsFolder.WrappedData.Name); CollectionAssert.AreEqual(pipingFailureMechanism.CalculationsGroup.Children, calculationsFolder.WrappedData.Children); Assert.AreSame(pipingFailureMechanism.SurfaceLines, calculationsFolder.AvailablePipingSurfaceLines); Assert.AreEqual(pipingFailureMechanism.StochasticSoilModels, calculationsFolder.AvailableStochasticSoilModels); Assert.AreSame(pipingFailureMechanism, calculationsFolder.FailureMechanism); - var outputsFolder = (CategoryTreeFolder) children[2]; + var outputsFolder = (CategoryTreeFolder)children[2]; Assert.AreEqual("Oordeel", outputsFolder.Name); Assert.AreEqual(TreeFolderCategory.Output, outputsFolder.Category); - var failureMechanismResultsContext = (FailureMechanismSectionResultContext) outputsFolder.Contents[0]; + var failureMechanismResultsContext = (FailureMechanismSectionResultContext)outputsFolder.Contents[0]; Assert.AreSame(pipingFailureMechanism, failureMechanismResultsContext.FailureMechanism); Assert.AreSame(pipingFailureMechanism.SectionResults, failureMechanismResultsContext.WrappedData); mocks.VerifyAll(); @@ -194,7 +199,7 @@ // Assert Assert.AreEqual(1, children.Length); - var commentContext = (CommentContext) children[0]; + var commentContext = (CommentContext)children[0]; Assert.AreSame(pipingFailureMechanism, commentContext.WrappedData); mocks.VerifyAll(); } @@ -205,83 +210,85 @@ public void GivenMultiplePipingCalculationsWithOutput_WhenClearingOutputFromContextMenu_ThenPipingOutputCleared(bool confirm) { // Given - var gui = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var generalInputParameters = new GeneralPipingInput(); - var pipingCalculation1 = new PipingCalculationScenario(generalInputParameters) + using (var treeViewControl = new TreeViewControl()) { - Output = new TestPipingOutput() - }; - var pipingCalculation2 = new PipingCalculationScenario(generalInputParameters) - { - Output = new TestPipingOutput() - }; + var generalInputParameters = new GeneralPipingInput(); + var pipingCalculation1 = new PipingCalculationScenario(generalInputParameters) + { + Output = new TestPipingOutput() + }; + var pipingCalculation2 = new PipingCalculationScenario(generalInputParameters) + { + Output = new TestPipingOutput() + }; - var observer = mocks.StrictMock(); - if (confirm) - { - observer.Expect(o => o.UpdateObserver()).Repeat.Twice(); - } + var observer = mocks.StrictMock(); + if (confirm) + { + observer.Expect(o => o.UpdateObserver()).Repeat.Twice(); + } - var failureMechanism = new PipingFailureMechanism(); - failureMechanism.CalculationsGroup.Children.Add(pipingCalculation1); - failureMechanism.CalculationsGroup.Children.Add(pipingCalculation2); + var failureMechanism = new PipingFailureMechanism(); + failureMechanism.CalculationsGroup.Children.Add(pipingCalculation1); + failureMechanism.CalculationsGroup.Children.Add(pipingCalculation2); - var assessmentSection = mocks.Stub(); - var failureMechanismContext = new PipingFailureMechanismContext(failureMechanism, assessmentSection); + var assessmentSection = mocks.Stub(); + var failureMechanismContext = new PipingFailureMechanismContext(failureMechanism, assessmentSection); - gui.Expect(cmp => cmp.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - mocks.ReplayAll(); + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); - plugin.Gui = gui; + mocks.ReplayAll(); - failureMechanism.CalculationsGroup.Children.Clear(); - failureMechanism.CalculationsGroup.Children.Add(pipingCalculation1); - failureMechanism.CalculationsGroup.Children.Add(pipingCalculation2); - failureMechanism.CalculationsGroup.Children.ElementAt(0).Attach(observer); - failureMechanism.CalculationsGroup.Children.ElementAt(1).Attach(observer); + plugin.Gui = gui; - ContextMenuStrip contextMenuAdapter = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); + failureMechanism.CalculationsGroup.Children.Clear(); + failureMechanism.CalculationsGroup.Children.Add(pipingCalculation1); + failureMechanism.CalculationsGroup.Children.Add(pipingCalculation2); + failureMechanism.CalculationsGroup.Children.ElementAt(0).Attach(observer); + failureMechanism.CalculationsGroup.Children.ElementAt(1).Attach(observer); - string messageBoxTitle = null, messageBoxText = null; - DialogBoxHandler = (name, wnd) => - { - var messageBox = new MessageBoxTester(wnd); + ContextMenuStrip contextMenuAdapter = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); - messageBoxText = messageBox.Text; - messageBoxTitle = messageBox.Title; + string messageBoxTitle = null, messageBoxText = null; + DialogBoxHandler = (name, wnd) => + { + var messageBox = new MessageBoxTester(wnd); - if (confirm) + messageBoxText = messageBox.Text; + messageBoxTitle = messageBox.Title; + + if (confirm) + { + messageBox.ClickOk(); + } + else + { + messageBox.ClickCancel(); + } + }; + + // When + contextMenuAdapter.Items[contextMenuClearIndex].PerformClick(); + + // Then + foreach (var calc in failureMechanism.CalculationsGroup.Children.OfType()) { - messageBox.ClickOk(); + Assert.AreNotEqual(confirm, calc.HasOutput); } - else - { - messageBox.ClickCancel(); - } - }; - // When - contextMenuAdapter.Items[contextMenuClearIndex].PerformClick(); - - // Then - foreach (var calc in failureMechanism.CalculationsGroup.Children.OfType()) - { - Assert.AreNotEqual(confirm, calc.HasOutput); + Assert.AreEqual("Bevestigen", messageBoxTitle); + Assert.AreEqual("Weet u zeker dat u alle uitvoer wilt wissen?", messageBoxText); } - - Assert.AreEqual("Bevestigen", messageBoxTitle); - Assert.AreEqual("Weet u zeker dat u alle uitvoer wilt wissen?", messageBoxText); mocks.VerifyAll(); } [Test] public void ContextMenuStrip_HasCalculationWithOutput_ReturnsContextMenuWithCommonItems() { // Setup - var treeViewControl = mocks.StrictMock(); var failureMechanism = new PipingFailureMechanism(); failureMechanism.AddSection(new FailureMechanismSection("test", new[] { @@ -299,12 +306,13 @@ var applicationFeatureCommandHandler = mocks.Stub(); var exportImportHandler = mocks.Stub(); var viewCommandsHandler = mocks.Stub(); + var treeViewControl = mocks.StrictMock(); + treeViewControl.Expect(tvc => tvc.CanExpandOrCollapseForData(failureMechanismContext)).Repeat.Twice().Return(false); var menuBuilder = new ContextMenuBuilder(applicationFeatureCommandHandler, exportImportHandler, viewCommandsHandler, failureMechanismContext, treeViewControl); var gui = mocks.StrictMock(); gui.Expect(cmp => cmp.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); - treeViewControl.Expect(tvc => tvc.CanExpandOrCollapseForData(failureMechanismContext)).Repeat.Twice().Return(false); mocks.ReplayAll(); @@ -348,226 +356,235 @@ public void ContextMenuStrip_PipingFailureMechanismNoOutput_ClearAllOutputDisabled() { // Setup - var treeViewControl = new TreeViewControl(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + using (var treeViewControl = new TreeViewControl()) + { + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var dataMock = mocks.StrictMock(); - dataMock.Stub(dm => dm.Calculations).Return(new ICalculation[0]); + var dataMock = mocks.StrictMock(); + dataMock.Stub(dm => dm.Calculations).Return(new ICalculation[0]); - var assessmentSection = mocks.Stub(); - var failureMechanismContext = new PipingFailureMechanismContext(dataMock, assessmentSection); + var assessmentSection = mocks.Stub(); + var failureMechanismContext = new PipingFailureMechanismContext(dataMock, assessmentSection); - var gui = mocks.StrictMock(); - gui.Expect(cmp => cmp.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); - mocks.ReplayAll(); + mocks.ReplayAll(); - plugin.Gui = gui; + plugin.Gui = gui; - // Call - ContextMenuStrip contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); + // Call + ContextMenuStrip contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); - // Assert - ToolStripItem clearOutputItem = contextMenu.Items[contextMenuClearIndex]; - Assert.IsFalse(clearOutputItem.Enabled); - Assert.AreEqual("Er zijn geen berekeningen met uitvoer om te wissen.", clearOutputItem.ToolTipText); - + // Assert + ToolStripItem clearOutputItem = contextMenu.Items[contextMenuClearIndex]; + Assert.IsFalse(clearOutputItem.Enabled); + Assert.AreEqual("Er zijn geen berekeningen met uitvoer om te wissen.", clearOutputItem.ToolTipText); + } mocks.VerifyAll(); // Expect no calls on arguments } [Test] public void ContextMenuStrip_PipingFailureMechanismWithOutput_ClearAllOutputEnabled() { // Setup - var treeViewControl = new TreeViewControl(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var pipingCalculation = new PipingCalculationScenario(new GeneralPipingInput()) + using (var treeViewControl = new TreeViewControl()) { - Output = new TestPipingOutput() - }; + var pipingCalculation = new PipingCalculationScenario(new GeneralPipingInput()) + { + Output = new TestPipingOutput() + }; - var failureMechanism = new PipingFailureMechanism(); - failureMechanism.CalculationsGroup.Children.Add(pipingCalculation); + var failureMechanism = new PipingFailureMechanism(); + failureMechanism.CalculationsGroup.Children.Add(pipingCalculation); - var assessmentSection = mocks.Stub(); - var failureMechanismContext = new PipingFailureMechanismContext(failureMechanism, assessmentSection); + var assessmentSection = mocks.Stub(); + var failureMechanismContext = new PipingFailureMechanismContext(failureMechanism, assessmentSection); - var gui = mocks.StrictMock(); - gui.Expect(cmp => cmp.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - mocks.ReplayAll(); + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); - plugin.Gui = gui; + mocks.ReplayAll(); - failureMechanism.CalculationsGroup.Children.Add(pipingCalculation); + plugin.Gui = gui; - // Call - ContextMenuStrip contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); + failureMechanism.CalculationsGroup.Children.Add(pipingCalculation); - // Assert - ToolStripItem clearOutputItem = contextMenu.Items[contextMenuClearIndex]; - Assert.IsTrue(clearOutputItem.Enabled); - Assert.AreEqual(RingtoetsFormsResources.Clear_all_output_ToolTip, clearOutputItem.ToolTipText); + // Call + ContextMenuStrip contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); + // Assert + ToolStripItem clearOutputItem = contextMenu.Items[contextMenuClearIndex]; + Assert.IsTrue(clearOutputItem.Enabled); + Assert.AreEqual(RingtoetsFormsResources.Clear_all_output_ToolTip, clearOutputItem.ToolTipText); + } mocks.VerifyAll(); // Expect no calls on arguments } [Test] public void ContextMenuStrip_PipingFailureMechanismWithNoCalculations_ValidateAndCalculateAllDisabled() { // Setup - var treeViewControl = new TreeViewControl(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + using (var treeViewControl = new TreeViewControl()) + { + var failureMechanism = new PipingFailureMechanism(); - var dataMock = new PipingFailureMechanism(); + var assessmentSection = mocks.Stub(); + var failureMechanismContext = new PipingFailureMechanismContext(failureMechanism, assessmentSection); - var assessmentSection = mocks.Stub(); - var failureMechanismContext = new PipingFailureMechanismContext(dataMock, assessmentSection); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var gui = mocks.StrictMock(); - gui.Expect(cmp => cmp.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); - mocks.ReplayAll(); + mocks.ReplayAll(); - plugin.Gui = gui; + plugin.Gui = gui; - dataMock.CalculationsGroup.Children.Clear(); + failureMechanism.CalculationsGroup.Children.Clear(); - // Call - ContextMenuStrip contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); + // Call + ContextMenuStrip contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); - // Assert - ToolStripItem validateItem = contextMenu.Items[contextMenuValidateAllIndex]; - ToolStripItem calculateItem = contextMenu.Items[contextMenuCalculateAllIndex]; - Assert.IsFalse(validateItem.Enabled); - Assert.IsFalse(calculateItem.Enabled); - Assert.AreEqual(RingtoetsCommonFormsResources.FailureMechanism_CreateCalculateAllItem_No_calculations_to_run, calculateItem.ToolTipText); - Assert.AreEqual(RingtoetsCommonFormsResources.FailureMechanism_CreateValidateAllItem_No_calculations_to_validate, validateItem.ToolTipText); - + // Assert + ToolStripItem validateItem = contextMenu.Items[contextMenuValidateAllIndex]; + ToolStripItem calculateItem = contextMenu.Items[contextMenuCalculateAllIndex]; + Assert.IsFalse(validateItem.Enabled); + Assert.IsFalse(calculateItem.Enabled); + Assert.AreEqual(RingtoetsCommonFormsResources.FailureMechanism_CreateCalculateAllItem_No_calculations_to_run, calculateItem.ToolTipText); + Assert.AreEqual(RingtoetsCommonFormsResources.FailureMechanism_CreateValidateAllItem_No_calculations_to_validate, validateItem.ToolTipText); + } mocks.VerifyAll(); // Expect no calls on arguments } [Test] public void ContextMenuStrip_NoFailureMechanismSections_ContextMenuItemCalculateAllDisabledAndTooltipSet() { // Setup - var treeViewControl = new TreeViewControl(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var pipingCalculation = new PipingCalculationScenario(new GeneralPipingInput()) + using (var treeViewControl = new TreeViewControl()) { - Output = new TestPipingOutput() - }; + var pipingCalculation = new PipingCalculationScenario(new GeneralPipingInput()) + { + Output = new TestPipingOutput() + }; - var failureMechanism = new PipingFailureMechanism(); - failureMechanism.CalculationsGroup.Children.Add(pipingCalculation); + var failureMechanism = new PipingFailureMechanism(); + failureMechanism.CalculationsGroup.Children.Add(pipingCalculation); - var assessmentSection = mocks.Stub(); - var failureMechanismContext = new PipingFailureMechanismContext(failureMechanism, assessmentSection); + var assessmentSection = mocks.Stub(); + var failureMechanismContext = new PipingFailureMechanismContext(failureMechanism, assessmentSection); - var gui = mocks.StrictMock(); - gui.Expect(cmp => cmp.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - mocks.ReplayAll(); + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); - plugin.Gui = gui; + mocks.ReplayAll(); - failureMechanism.CalculationsGroup.Children.Add(pipingCalculation); + plugin.Gui = gui; - // Call - ContextMenuStrip contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); + failureMechanism.CalculationsGroup.Children.Add(pipingCalculation); - // Assert - TestHelper.AssertContextMenuStripContainsItem(contextMenu, - contextMenuCalculateAllIndex, - RingtoetsCommonFormsResources.Calculate_all, - RingtoetsCommonFormsResources.GuiPlugin_AllDataAvailable_No_failure_mechanism_sections_imported, - RingtoetsCommonFormsResources.CalculateAllIcon, - false); + // Call + ContextMenuStrip contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); + // Assert + TestHelper.AssertContextMenuStripContainsItem(contextMenu, + contextMenuCalculateAllIndex, + RingtoetsCommonFormsResources.Calculate_all, + RingtoetsCommonFormsResources.GuiPlugin_AllDataAvailable_No_failure_mechanism_sections_imported, + RingtoetsCommonFormsResources.CalculateAllIcon, + false); + } mocks.VerifyAll(); // Expect no calls on arguments } [Test] public void ContextMenuStrip_FailureMechanismSectionsSet_ContextMenuItemCalculateAllEnabled() { // Setup - var treeViewControl = new TreeViewControl(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - var pipingCalculation = new PipingCalculationScenario(new GeneralPipingInput()) + using (var treeViewControl = new TreeViewControl()) { - Output = new TestPipingOutput() - }; + var pipingCalculation = new PipingCalculationScenario(new GeneralPipingInput()) + { + Output = new TestPipingOutput() + }; - var failureMechanism = new PipingFailureMechanism(); - failureMechanism.CalculationsGroup.Children.Add(pipingCalculation); - failureMechanism.AddSection(new FailureMechanismSection("test", new[] - { - new Point2D(0, 0) - })); + var failureMechanism = new PipingFailureMechanism(); + failureMechanism.CalculationsGroup.Children.Add(pipingCalculation); + failureMechanism.AddSection(new FailureMechanismSection("test", new[] + { + new Point2D(0, 0) + })); - var assessmentSection = mocks.Stub(); - var failureMechanismContext = new PipingFailureMechanismContext(failureMechanism, assessmentSection); + var assessmentSection = mocks.Stub(); + var failureMechanismContext = new PipingFailureMechanismContext(failureMechanism, assessmentSection); - var gui = mocks.StrictMock(); - gui.Expect(cmp => cmp.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - mocks.ReplayAll(); + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); - plugin.Gui = gui; + mocks.ReplayAll(); - failureMechanism.CalculationsGroup.Children.Add(pipingCalculation); + plugin.Gui = gui; - // Call - ContextMenuStrip contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); + failureMechanism.CalculationsGroup.Children.Add(pipingCalculation); - // Assert - TestHelper.AssertContextMenuStripContainsItem(contextMenu, - contextMenuCalculateAllIndex, - RingtoetsCommonFormsResources.Calculate_all, - RingtoetsCommonFormsResources.Calculate_all_ToolTip, - RingtoetsCommonFormsResources.CalculateAllIcon); + // Call + ContextMenuStrip contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); + // Assert + TestHelper.AssertContextMenuStripContainsItem(contextMenu, + contextMenuCalculateAllIndex, + RingtoetsCommonFormsResources.Calculate_all, + RingtoetsCommonFormsResources.Calculate_all_ToolTip, + RingtoetsCommonFormsResources.CalculateAllIcon); + } mocks.VerifyAll(); // Expect no calls on arguments } [Test] public void ContextMenuStrip_FailureMechanismIsRelevant_CallsContextMenuBuilderMethods() { // Setup - var pipingFailureMechanism = new PipingFailureMechanism(); - var assessmentSection = mocks.Stub(); - var pipingFailureMechanismContext = new PipingFailureMechanismContext(pipingFailureMechanism, assessmentSection); + using (var treeViewControl = new TreeViewControl()) + { + var pipingFailureMechanism = new PipingFailureMechanism(); + var assessmentSection = mocks.Stub(); + var pipingFailureMechanismContext = new PipingFailureMechanismContext(pipingFailureMechanism, assessmentSection); - var gui = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var menuBuilder = mocks.StrictMock(); + var menuBuilder = mocks.StrictMock(); + menuBuilder.Expect(mb => mb.AddOpenItem()).Return(menuBuilder); + menuBuilder.Expect(mb => mb.AddSeparator()).Return(menuBuilder); + menuBuilder.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilder); + menuBuilder.Expect(mb => mb.AddSeparator()).Return(menuBuilder); + menuBuilder.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilder); + menuBuilder.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilder); + menuBuilder.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilder); + menuBuilder.Expect(mb => mb.AddSeparator()).Return(menuBuilder); + menuBuilder.Expect(mb => mb.AddImportItem()).Return(menuBuilder); + menuBuilder.Expect(mb => mb.AddExportItem()).Return(menuBuilder); + menuBuilder.Expect(mb => mb.AddSeparator()).Return(menuBuilder); + menuBuilder.Expect(mb => mb.AddExpandAllItem()).Return(menuBuilder); + menuBuilder.Expect(mb => mb.AddCollapseAllItem()).Return(menuBuilder); + menuBuilder.Expect(mb => mb.AddSeparator()).Return(menuBuilder); + menuBuilder.Expect(mb => mb.AddPropertiesItem()).Return(menuBuilder); + menuBuilder.Expect(mb => mb.Build()).Return(null); - menuBuilder.Expect(mb => mb.AddOpenItem()).Return(menuBuilder); - menuBuilder.Expect(mb => mb.AddSeparator()).Return(menuBuilder); - menuBuilder.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilder); - menuBuilder.Expect(mb => mb.AddSeparator()).Return(menuBuilder); - menuBuilder.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilder); - menuBuilder.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilder); - menuBuilder.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilder); - menuBuilder.Expect(mb => mb.AddSeparator()).Return(menuBuilder); - menuBuilder.Expect(mb => mb.AddImportItem()).Return(menuBuilder); - menuBuilder.Expect(mb => mb.AddExportItem()).Return(menuBuilder); - menuBuilder.Expect(mb => mb.AddSeparator()).Return(menuBuilder); - menuBuilder.Expect(mb => mb.AddExpandAllItem()).Return(menuBuilder); - menuBuilder.Expect(mb => mb.AddCollapseAllItem()).Return(menuBuilder); - menuBuilder.Expect(mb => mb.AddSeparator()).Return(menuBuilder); - menuBuilder.Expect(mb => mb.AddPropertiesItem()).Return(menuBuilder); - menuBuilder.Expect(mb => mb.Build()).Return(null); + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(pipingFailureMechanismContext, treeViewControl)).Return(menuBuilder); - gui.Expect(cmp => cmp.Get(pipingFailureMechanismContext, treeViewControl)).Return(menuBuilder); + mocks.ReplayAll(); - mocks.ReplayAll(); + plugin.Gui = gui; - plugin.Gui = gui; + // Call + info.ContextMenuStrip(pipingFailureMechanismContext, null, treeViewControl); + } - // Call - info.ContextMenuStrip(pipingFailureMechanismContext, null, treeViewControl); - // Assert mocks.VerifyAll(); } @@ -576,32 +593,33 @@ public void ContextMenuStrip_FailureMechanismIsNotRelevant_CallsContextMenuBuilderMethods() { // Setup - var pipingFailureMechanism = new PipingFailureMechanism + var treeViewControl = new TreeViewControl(); { - IsRelevant = false - }; - var assessmentSection = mocks.Stub(); - var pipingFailureMechanismContext = new PipingFailureMechanismContext(pipingFailureMechanism, assessmentSection); + var pipingFailureMechanism = new PipingFailureMechanism + { + IsRelevant = false + }; + var assessmentSection = mocks.Stub(); + var pipingFailureMechanismContext = new PipingFailureMechanismContext(pipingFailureMechanism, assessmentSection); - var gui = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var menuBuilder = mocks.StrictMock(); + var menuBuilder = mocks.StrictMock(); + menuBuilder.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilder); + menuBuilder.Expect(mb => mb.AddSeparator()).Return(menuBuilder); + menuBuilder.Expect(mb => mb.AddExpandAllItem()).Return(menuBuilder); + menuBuilder.Expect(mb => mb.AddCollapseAllItem()).Return(menuBuilder); + menuBuilder.Expect(mb => mb.Build()).Return(null); - menuBuilder.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilder); - menuBuilder.Expect(mb => mb.AddSeparator()).Return(menuBuilder); - menuBuilder.Expect(mb => mb.AddExpandAllItem()).Return(menuBuilder); - menuBuilder.Expect(mb => mb.AddCollapseAllItem()).Return(menuBuilder); - menuBuilder.Expect(mb => mb.Build()).Return(null); + var gui = mocks.StrictMock(); + gui.Expect(cmp => cmp.Get(pipingFailureMechanismContext, treeViewControl)).Return(menuBuilder); - gui.Expect(cmp => cmp.Get(pipingFailureMechanismContext, treeViewControl)).Return(menuBuilder); + mocks.ReplayAll(); - mocks.ReplayAll(); + plugin.Gui = gui; - plugin.Gui = gui; + // Call + info.ContextMenuStrip(pipingFailureMechanismContext, null, treeViewControl); + } - // Call - info.ContextMenuStrip(pipingFailureMechanismContext, null, treeViewControl); - // Assert mocks.VerifyAll(); } @@ -610,95 +628,99 @@ public void ContextMenuStrip_ClickOnValidateAllItem_ValidateAllChildCalculations() { // Setup - var gui = mocks.StrictMock(); - var treeViewControl = new TreeViewControl(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + using (var treeViewControl = new TreeViewControl()) + { + var failureMechanism = new PipingFailureMechanism(); + failureMechanism.CalculationsGroup.Children.Clear(); - var failureMechanism = new PipingFailureMechanism(); - failureMechanism.CalculationsGroup.Children.Clear(); + var validCalculation = PipingCalculationFactory.CreateCalculationWithValidInput(); + validCalculation.Name = "A"; + var invalidCalculation = PipingCalculationFactory.CreateCalculationWithInvalidData(); + invalidCalculation.Name = "B"; - var validCalculation = PipingCalculationFactory.CreateCalculationWithValidInput(); - validCalculation.Name = "A"; - var invalidCalculation = PipingCalculationFactory.CreateCalculationWithInvalidData(); - invalidCalculation.Name = "B"; + failureMechanism.CalculationsGroup.Children.Add(validCalculation); + failureMechanism.CalculationsGroup.Children.Add(invalidCalculation); - failureMechanism.CalculationsGroup.Children.Add(validCalculation); - failureMechanism.CalculationsGroup.Children.Add(invalidCalculation); + var assessmentSection = mocks.Stub(); + var failureMechanismContext = new PipingFailureMechanismContext(failureMechanism, assessmentSection); - var assessmentSection = mocks.Stub(); - var failureMechanismContext = new PipingFailureMechanismContext(failureMechanism, assessmentSection); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - gui.Expect(g => g.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); + var gui = mocks.StrictMock(); + gui.Expect(g => g.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); - mocks.ReplayAll(); + mocks.ReplayAll(); - plugin.Gui = gui; + plugin.Gui = gui; - var contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); + var contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); - // Call - Action call = () => contextMenu.Items[contextMenuValidateAllIndex].PerformClick(); + // Call + Action call = () => contextMenu.Items[contextMenuValidateAllIndex].PerformClick(); - // Assert - TestHelper.AssertLogMessages(call, messages => - { - var msgs = messages.ToArray(); - Assert.AreEqual(6, msgs.Length); - StringAssert.StartsWith(String.Format("Validatie van '{0}' gestart om: ", validCalculation.Name), msgs[0]); - StringAssert.StartsWith(String.Format("Validatie van '{0}' beëindigd om: ", validCalculation.Name), msgs[1]); + // Assert + TestHelper.AssertLogMessages(call, messages => + { + var msgs = messages.ToArray(); + Assert.AreEqual(6, msgs.Length); + StringAssert.StartsWith(String.Format("Validatie van '{0}' gestart om: ", validCalculation.Name), msgs[0]); + StringAssert.StartsWith(String.Format("Validatie van '{0}' beëindigd om: ", validCalculation.Name), msgs[1]); - StringAssert.StartsWith(String.Format("Validatie van '{0}' gestart om: ", invalidCalculation.Name), msgs[2]); - // Some validation error from validation service - StringAssert.StartsWith(String.Format("Validatie van '{0}' beëindigd om: ", invalidCalculation.Name), msgs[5]); - }); + StringAssert.StartsWith(String.Format("Validatie van '{0}' gestart om: ", invalidCalculation.Name), msgs[2]); + // Some validation error from validation service + StringAssert.StartsWith(String.Format("Validatie van '{0}' beëindigd om: ", invalidCalculation.Name), msgs[5]); + }); + } mocks.VerifyAll(); } [Test] public void ContextMenuStrip_ClickOnCalculateAllItem_ScheduleAllChildCalculations() { // Setup - var gui = mocks.StrictMock(); - var mainWindow = mocks.Stub(); - var treeViewControl = new TreeViewControl(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - - var failureMechanism = new PipingFailureMechanism(); - failureMechanism.AddSection(new FailureMechanismSection("test", new[] + using (var treeViewControl = new TreeViewControl()) { - new Point2D(0, 0) - })); - failureMechanism.CalculationsGroup.Children.Clear(); + var failureMechanism = new PipingFailureMechanism(); + failureMechanism.AddSection(new FailureMechanismSection("test", new[] + { + new Point2D(0, 0) + })); + failureMechanism.CalculationsGroup.Children.Clear(); - var validCalculation = PipingCalculationFactory.CreateCalculationWithValidInput(); - validCalculation.Name = "A"; - var invalidCalculation = PipingCalculationFactory.CreateCalculationWithInvalidData(); - invalidCalculation.Name = "B"; + var validCalculation = PipingCalculationFactory.CreateCalculationWithValidInput(); + validCalculation.Name = "A"; + var invalidCalculation = PipingCalculationFactory.CreateCalculationWithInvalidData(); + invalidCalculation.Name = "B"; - failureMechanism.CalculationsGroup.Children.Add(validCalculation); - failureMechanism.CalculationsGroup.Children.Add(invalidCalculation); + failureMechanism.CalculationsGroup.Children.Add(validCalculation); + failureMechanism.CalculationsGroup.Children.Add(invalidCalculation); - var assessmentSection = mocks.Stub(); - var failureMechanismContext = new PipingFailureMechanismContext(failureMechanism, assessmentSection); + var assessmentSection = mocks.Stub(); + assessmentSection.Stub(s => s.FailureMechanismContribution).Return(new FailureMechanismContribution(Enumerable.Empty(), 30, 20000)); + var failureMechanismContext = new PipingFailureMechanismContext(failureMechanism, assessmentSection); - assessmentSection.Stub(s => s.FailureMechanismContribution).Return(new FailureMechanismContribution(Enumerable.Empty(), 30, 20000)); - gui.Expect(g => g.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); - gui.Expect(g => g.MainWindow).Return(mainWindow); + var mainWindow = mocks.Stub(); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - mocks.ReplayAll(); + var gui = mocks.StrictMock(); + gui.Expect(g => g.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); + gui.Expect(g => g.MainWindow).Return(mainWindow); - plugin.Gui = gui; + mocks.ReplayAll(); - var contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); + plugin.Gui = gui; - DialogBoxHandler = (name, wnd) => - { - // Expect an activity dialog which is automatically closed - }; + var contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); - // Call - contextMenu.Items[contextMenuCalculateAllIndex].PerformClick(); + DialogBoxHandler = (name, wnd) => + { + // Expect an activity dialog which is automatically closed + }; + // Call + contextMenu.Items[contextMenuCalculateAllIndex].PerformClick(); + } + // Assert mocks.VerifyAll(); } @@ -707,75 +729,79 @@ public void ContextMenuStrip_FailureMechanismIsRelevantAndClickOnIsRelevantItem_MakeFailureMechanismNotRelevant() { // Setup - var failureMechanismObserver = mocks.Stub(); - failureMechanismObserver.Expect(o => o.UpdateObserver()); - - var failureMechanism = new PipingFailureMechanism + using (var treeViewControl = new TreeViewControl()) { - IsRelevant = true - }; - failureMechanism.Attach(failureMechanismObserver); + var failureMechanismObserver = mocks.Stub(); + failureMechanismObserver.Expect(o => o.UpdateObserver()); - var assessmentSection = mocks.Stub(); - var failureMechanismContext = new PipingFailureMechanismContext(failureMechanism, assessmentSection); + var failureMechanism = new PipingFailureMechanism + { + IsRelevant = true + }; + failureMechanism.Attach(failureMechanismObserver); - var viewCommands = mocks.StrictMock(); - viewCommands.Expect(vs => vs.RemoveAllViewsForItem(failureMechanismContext)); + var assessmentSection = mocks.Stub(); + var failureMechanismContext = new PipingFailureMechanismContext(failureMechanism, assessmentSection); - var treeViewControl = new TreeViewControl(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + var viewCommands = mocks.StrictMock(); + viewCommands.Expect(vs => vs.RemoveAllViewsForItem(failureMechanismContext)); - var gui = mocks.StrictMock(); - gui.Stub(g => g.ViewCommands).Return(viewCommands); - gui.Expect(g => g.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - mocks.ReplayAll(); + var gui = mocks.StrictMock(); + gui.Stub(g => g.ViewCommands).Return(viewCommands); + gui.Expect(g => g.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); - plugin.Gui = gui; + mocks.ReplayAll(); - var contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); + plugin.Gui = gui; - // Call - contextMenu.Items[contextMenuRelevancyIndexWhenRelevant].PerformClick(); + var contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); - // Assert - Assert.IsFalse(failureMechanism.IsRelevant); + // Call + contextMenu.Items[contextMenuRelevancyIndexWhenRelevant].PerformClick(); + + // Assert + Assert.IsFalse(failureMechanism.IsRelevant); + } mocks.VerifyAll(); } [Test] public void ContextMenuStrip_FailureMechanismIsNotRelevantAndClickOnIsRelevantItem_MakeFailureMechanismRelevant() { // Setup - var failureMechanismObserver = mocks.Stub(); - failureMechanismObserver.Expect(o => o.UpdateObserver()); - - var failureMechanism = new PipingFailureMechanism + using (var treeViewControl = new TreeViewControl()) { - IsRelevant = false - }; - failureMechanism.Attach(failureMechanismObserver); + var failureMechanismObserver = mocks.Stub(); + failureMechanismObserver.Expect(o => o.UpdateObserver()); - var assessmentSection = mocks.Stub(); - var failureMechanismContext = new PipingFailureMechanismContext(failureMechanism, assessmentSection); + var failureMechanism = new PipingFailureMechanism + { + IsRelevant = false + }; + failureMechanism.Attach(failureMechanismObserver); - var treeViewControl = new TreeViewControl(); - var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); + var assessmentSection = mocks.Stub(); + var failureMechanismContext = new PipingFailureMechanismContext(failureMechanism, assessmentSection); - var gui = mocks.StrictMock(); - gui.Expect(g => g.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); + var menuBuilder = new CustomItemsOnlyContextMenuBuilder(); - mocks.ReplayAll(); + var gui = mocks.StrictMock(); + gui.Expect(g => g.Get(failureMechanismContext, treeViewControl)).Return(menuBuilder); - plugin.Gui = gui; + mocks.ReplayAll(); - var contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); + plugin.Gui = gui; - // Call - contextMenu.Items[contextMenuRelevancyIndexWhenNotRelevant].PerformClick(); + var contextMenu = info.ContextMenuStrip(failureMechanismContext, null, treeViewControl); - // Assert - Assert.IsTrue(failureMechanism.IsRelevant); + // Call + contextMenu.Items[contextMenuRelevancyIndexWhenNotRelevant].PerformClick(); + + // Assert + Assert.IsTrue(failureMechanism.IsRelevant); + } mocks.VerifyAll(); } Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingCalculationsViewTest.cs =================================================================== diff -u -ra2bfc1b408fe5187e5968cc2ff6ac7449211b537 -r12a35732d53e73c149035a212f96d2a0e9604cff --- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingCalculationsViewTest.cs (.../PipingCalculationsViewTest.cs) (revision a2bfc1b408fe5187e5968cc2ff6ac7449211b537) +++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/Views/PipingCalculationsViewTest.cs (.../PipingCalculationsViewTest.cs) (revision 12a35732d53e73c149035a212f96d2a0e9604cff) @@ -555,8 +555,8 @@ DataGridView grid = null; DialogBoxHandler = (name, wnd) => { - selectionDialog = new FormTester(name).TheObject as PipingSurfaceLineSelectionDialog; - grid = new ControlTester("SurfaceLineDataGrid", selectionDialog).TheObject as DataGridView; + selectionDialog = (PipingSurfaceLineSelectionDialog)new FormTester(name).TheObject; + grid = (DataGridView)new ControlTester("SurfaceLineDataGrid", selectionDialog).TheObject; new ButtonTester("CustomCancelButton", selectionDialog).Click(); }; @@ -633,7 +633,7 @@ DialogBoxHandler = (name, wnd) => { - var selectionDialog = new FormTester(name).TheObject as PipingSurfaceLineSelectionDialog; + var selectionDialog = (PipingSurfaceLineSelectionDialog)new FormTester(name).TheObject; // When new ButtonTester(buttonName, selectionDialog).Click(); @@ -661,7 +661,7 @@ DialogBoxHandler = (name, wnd) => { - var selectionDialog = new FormTester(name).TheObject as PipingSurfaceLineSelectionDialog; + var selectionDialog = (PipingSurfaceLineSelectionDialog)new FormTester(name).TheObject; var selectionView = (DataGridView) new ControlTester("SurfaceLineDataGrid", selectionDialog).TheObject; @@ -702,7 +702,7 @@ DialogBoxHandler = (name, wnd) => { - var selectionDialog = new FormTester(name).TheObject as PipingSurfaceLineSelectionDialog; + var selectionDialog = (PipingSurfaceLineSelectionDialog)new FormTester(name).TheObject; var selectionView = (DataGridView) new ControlTester("SurfaceLineDataGrid", selectionDialog).TheObject;