Index: Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Forms/GrassCoverErosionOutwardsWaveConditionsCalculationHelper.cs
===================================================================
diff -u -r9e6869de553715aefe4752478334c3a6a3f83340 -r218e7a0206204401ad7fe9d94ea3532dc456f33e
--- Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Forms/GrassCoverErosionOutwardsWaveConditionsCalculationHelper.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationHelper.cs) (revision 9e6869de553715aefe4752478334c3a6a3f83340)
+++ Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Forms/GrassCoverErosionOutwardsWaveConditionsCalculationHelper.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationHelper.cs) (revision 218e7a0206204401ad7fe9d94ea3532dc456f33e)
@@ -21,11 +21,14 @@
using System;
using System.Collections.Generic;
+using System.ComponentModel;
using System.Linq;
using Ringtoets.Common.Data.Calculation;
+using Ringtoets.Common.Data.Contribution;
using Ringtoets.Common.Data.Hydraulics;
using Ringtoets.Common.Forms.Helpers;
using Ringtoets.GrassCoverErosionOutwards.Data;
+using Ringtoets.Revetment.Data;
namespace Ringtoets.GrassCoverErosionOutwards.Forms
{
@@ -36,43 +39,67 @@
{
///
/// Adds a based on the
- /// in the .
+ /// in the and sets their initial category type input based on the .
///
/// Locations to base the calculation upon.
/// The list to update.
- /// Thrown when any input parameter is null.
+ /// The to set the category type input for.
+ /// Throw when any
+ /// or is null.
+ /// Thrown when is an invalid value.
+ /// Thrown when is a valid value,
+ /// but unsupported.
public static void AddCalculationsFromLocations(IEnumerable locations,
- List calculations)
+ List calculations,
+ NormType normType)
{
if (locations == null)
{
throw new ArgumentNullException(nameof(locations));
}
+
if (calculations == null)
{
throw new ArgumentNullException(nameof(calculations));
}
- foreach (ICalculationBase calculation in locations.Select(location => CreateGrassCoverErosionOutwardsWaveConditionsCalculation(location, calculations)))
+
+ foreach (ICalculationBase calculation in locations.Select(location => CreateGrassCoverErosionOutwardsWaveConditionsCalculation(location,
+ calculations,
+ normType)))
{
calculations.Add(calculation);
}
}
+ ///
+ /// Creates a calculation and sets the
+ /// and the category type on its input.
+ ///
+ /// The to set.
+ /// The list of calculations to base the calculation name from.
+ /// The to base the category type input on.
+ /// An representing a grass cover erosion outwards calculation.
+ /// Thrown when is an invalid value.
+ /// Thrown when is a valid value,
+ /// but unsupported.
private static ICalculationBase CreateGrassCoverErosionOutwardsWaveConditionsCalculation(
HydraulicBoundaryLocation hydraulicBoundaryLocation,
- IEnumerable calculations)
+ IEnumerable calculations,
+ NormType normType)
{
string nameBase = hydraulicBoundaryLocation.Name;
string name = NamingHelper.GetUniqueName(calculations, nameBase, c => c.Name);
- return new GrassCoverErosionOutwardsWaveConditionsCalculation
+ var calculation = new GrassCoverErosionOutwardsWaveConditionsCalculation
{
Name = name,
InputParameters =
{
HydraulicBoundaryLocation = hydraulicBoundaryLocation
}
};
+ WaveConditionsInputHelper.SetCategoryType(calculation.InputParameters, normType);
+ return calculation;
}
}
}
\ No newline at end of file
Index: Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Plugin/GrassCoverErosionOutwardsPlugin.cs
===================================================================
diff -u -r5b29dd531b618b6d3969e7cba9c95d31517290e4 -r218e7a0206204401ad7fe9d94ea3532dc456f33e
--- Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Plugin/GrassCoverErosionOutwardsPlugin.cs (.../GrassCoverErosionOutwardsPlugin.cs) (revision 5b29dd531b618b6d3969e7cba9c95d31517290e4)
+++ Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Plugin/GrassCoverErosionOutwardsPlugin.cs (.../GrassCoverErosionOutwardsPlugin.cs) (revision 218e7a0206204401ad7fe9d94ea3532dc456f33e)
@@ -33,6 +33,7 @@
using Core.Common.Util;
using Ringtoets.Common.Data.AssessmentSection;
using Ringtoets.Common.Data.Calculation;
+using Ringtoets.Common.Data.Contribution;
using Ringtoets.Common.Data.FailureMechanism;
using Ringtoets.Common.Data.Hydraulics;
using Ringtoets.Common.Forms;
@@ -765,18 +766,22 @@
if (dialog.SelectedItems.Any())
{
- GenerateGrassCoverErosionOutwardsWaveConditionsCalculations(dialog.SelectedItems, nodeData.WrappedData.Children);
+ GenerateGrassCoverErosionOutwardsWaveConditionsCalculations(dialog.SelectedItems,
+ nodeData.WrappedData.Children,
+ nodeData.AssessmentSection.FailureMechanismContribution.NormativeNorm);
nodeData.NotifyObservers();
}
}
}
private static void GenerateGrassCoverErosionOutwardsWaveConditionsCalculations(IEnumerable hydraulicBoundaryLocations,
- List calculationCollection)
+ List calculationCollection,
+ NormType normType)
{
GrassCoverErosionOutwardsWaveConditionsCalculationHelper.AddCalculationsFromLocations(
hydraulicBoundaryLocations,
- calculationCollection);
+ calculationCollection,
+ normType);
}
private static void AddWaveConditionsCalculation(GrassCoverErosionOutwardsWaveConditionsCalculationGroupContext nodeData)
@@ -787,7 +792,7 @@
RingtoetsCommonDataResources.Calculation_DefaultName,
c => c.Name)
};
- WaveConditionsInputHelper.SetCategoryType(calculation.InputParameters,
+ WaveConditionsInputHelper.SetCategoryType(calculation.InputParameters,
nodeData.AssessmentSection.FailureMechanismContribution.NormativeNorm);
nodeData.WrappedData.Children.Add(calculation);
nodeData.WrappedData.NotifyObservers();
Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/GrassCoverErosionOutwardsWaveConditionsCalculationHelperTest.cs
===================================================================
diff -u -r04cf5f873b69cb330aeda88b622e286b2aefa852 -r218e7a0206204401ad7fe9d94ea3532dc456f33e
--- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/GrassCoverErosionOutwardsWaveConditionsCalculationHelperTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationHelperTest.cs) (revision 04cf5f873b69cb330aeda88b622e286b2aefa852)
+++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Forms.Test/GrassCoverErosionOutwardsWaveConditionsCalculationHelperTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationHelperTest.cs) (revision 218e7a0206204401ad7fe9d94ea3532dc456f33e)
@@ -22,10 +22,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using Core.Common.TestUtil;
using NUnit.Framework;
using Ringtoets.Common.Data.Calculation;
+using Ringtoets.Common.Data.Contribution;
+using Ringtoets.Common.Data.FailureMechanism;
using Ringtoets.Common.Data.Hydraulics;
using Ringtoets.GrassCoverErosionOutwards.Data;
+using Ringtoets.Revetment.Data;
namespace Ringtoets.GrassCoverErosionOutwards.Forms.Test
{
@@ -36,10 +40,13 @@
public void AddCalculationsFromLocations_LocationsIsNull_ThrowsArgumentNullException()
{
// Setup
+ var random = new Random(21);
var calculations = new List();
// Call
- TestDelegate test = () => GrassCoverErosionOutwardsWaveConditionsCalculationHelper.AddCalculationsFromLocations(null, calculations);
+ TestDelegate test = () => GrassCoverErosionOutwardsWaveConditionsCalculationHelper.AddCalculationsFromLocations(null,
+ calculations,
+ random.NextEnumValue());
// Assert
string paramName = Assert.Throws(test).ParamName;
@@ -50,10 +57,13 @@
public void AddCalculationsFromLocations_CalculationsIsNull_ThrowsArgumentNullException()
{
// Setup
+ var random = new Random(21);
IEnumerable locations = Enumerable.Empty();
// Call
- TestDelegate test = () => GrassCoverErosionOutwardsWaveConditionsCalculationHelper.AddCalculationsFromLocations(locations, null);
+ TestDelegate test = () => GrassCoverErosionOutwardsWaveConditionsCalculationHelper.AddCalculationsFromLocations(locations,
+ null,
+ random.NextEnumValue());
// Assert
string paramName = Assert.Throws(test).ParamName;
@@ -64,18 +74,23 @@
public void AddCalculationsFromLocations_EmptyCollections_ReturnsEmptyList()
{
// Setup
+ var random = new Random(21);
IEnumerable locations = Enumerable.Empty();
var calculationBases = new List();
// Call
- GrassCoverErosionOutwardsWaveConditionsCalculationHelper.AddCalculationsFromLocations(locations, calculationBases);
+ GrassCoverErosionOutwardsWaveConditionsCalculationHelper.AddCalculationsFromLocations(locations, calculationBases, random.NextEnumValue());
// Assert
CollectionAssert.IsEmpty(calculationBases);
}
[Test]
- public void AddCalculationsFromLocations_MultipleLocationsEmptyCalculationBase_ReturnsUniquelyNamedCalculations()
+ [TestCase(NormType.LowerLimit, FailureMechanismCategoryType.MechanismSpecificLowerLimitNorm)]
+ [TestCase(NormType.Signaling, FailureMechanismCategoryType.MechanismSpecificSignalingNorm)]
+ public void AddCalculationsFromLocations_MultipleLocationsEmptyCalculationBase_ReturnsUniquelyNamedCalculations(
+ NormType normType,
+ FailureMechanismCategoryType expectedFailureMechanismCategoryType)
{
// Setup
const string name = "name";
@@ -87,21 +102,29 @@
var calculationBases = new List();
// Call
- GrassCoverErosionOutwardsWaveConditionsCalculationHelper.AddCalculationsFromLocations(locations, calculationBases);
+ GrassCoverErosionOutwardsWaveConditionsCalculationHelper.AddCalculationsFromLocations(locations, calculationBases, normType);
// Assert
Assert.AreEqual(2, calculationBases.Count);
var firstCalculation = (GrassCoverErosionOutwardsWaveConditionsCalculation) calculationBases.First();
Assert.AreEqual(name, firstCalculation.Name);
- Assert.AreEqual(locations[0], firstCalculation.InputParameters.HydraulicBoundaryLocation);
+ FailureMechanismCategoryWaveConditionsInput firstCalculationInput = firstCalculation.InputParameters;
+ Assert.AreEqual(locations[0], firstCalculationInput.HydraulicBoundaryLocation);
+ Assert.AreEqual(expectedFailureMechanismCategoryType, firstCalculationInput.CategoryType);
var secondCalculation = (GrassCoverErosionOutwardsWaveConditionsCalculation) calculationBases.ElementAt(1);
Assert.AreEqual($"{name} (1)", secondCalculation.Name);
- Assert.AreSame(locations[1], secondCalculation.InputParameters.HydraulicBoundaryLocation);
+ FailureMechanismCategoryWaveConditionsInput secondCalculationInput = secondCalculation.InputParameters;
+ Assert.AreSame(locations[1], secondCalculationInput.HydraulicBoundaryLocation);
+ Assert.AreEqual(expectedFailureMechanismCategoryType, secondCalculationInput.CategoryType);
}
[Test]
- public void AddCalculationsFromLocations_MultipleLocationsAndDuplicateNameInCalculationBase_ReturnsUniquelyNamedCalculations()
+ [TestCase(NormType.LowerLimit, FailureMechanismCategoryType.MechanismSpecificLowerLimitNorm)]
+ [TestCase(NormType.Signaling, FailureMechanismCategoryType.MechanismSpecificSignalingNorm)]
+ public void AddCalculationsFromLocations_MultipleLocationsAndDuplicateNameInCalculationBase_ReturnsUniquelyNamedCalculations(
+ NormType normType,
+ FailureMechanismCategoryType expectedFailureMechanismCategoryType)
{
// Setup
const string name = "name";
@@ -119,17 +142,21 @@
};
// Call
- GrassCoverErosionOutwardsWaveConditionsCalculationHelper.AddCalculationsFromLocations(locations, calculationBases);
+ GrassCoverErosionOutwardsWaveConditionsCalculationHelper.AddCalculationsFromLocations(locations, calculationBases, normType);
// Assert
Assert.AreEqual(3, calculationBases.Count);
var firstCalculation = (GrassCoverErosionOutwardsWaveConditionsCalculation) calculationBases.ElementAt(1);
Assert.AreEqual($"{name} (1)", firstCalculation.Name);
- Assert.AreEqual(locations[0], firstCalculation.InputParameters.HydraulicBoundaryLocation);
+ FailureMechanismCategoryWaveConditionsInput firstCalculationInput = firstCalculation.InputParameters;
+ Assert.AreEqual(locations[0], firstCalculationInput.HydraulicBoundaryLocation);
+ Assert.AreEqual(expectedFailureMechanismCategoryType, firstCalculationInput.CategoryType);
var secondCalculation = (GrassCoverErosionOutwardsWaveConditionsCalculation) calculationBases.ElementAt(2);
Assert.AreEqual($"{name} (2)", secondCalculation.Name);
- Assert.AreSame(locations[1], secondCalculation.InputParameters.HydraulicBoundaryLocation);
+ FailureMechanismCategoryWaveConditionsInput secondCalculationInput = secondCalculation.InputParameters;
+ Assert.AreSame(locations[1], secondCalculationInput.HydraulicBoundaryLocation);
+ Assert.AreEqual(expectedFailureMechanismCategoryType, secondCalculationInput.CategoryType);
}
}
}
\ No newline at end of file
Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionOutwardsWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs
===================================================================
diff -u -r5b29dd531b618b6d3969e7cba9c95d31517290e4 -r218e7a0206204401ad7fe9d94ea3532dc456f33e
--- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionOutwardsWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs) (revision 5b29dd531b618b6d3969e7cba9c95d31517290e4)
+++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Plugin.Test/TreeNodeInfos/GrassCoverErosionOutwardsWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs (.../GrassCoverErosionOutwardsWaveConditionsCalculationGroupContextTreeNodeInfoTest.cs) (revision 218e7a0206204401ad7fe9d94ea3532dc456f33e)
@@ -1813,6 +1813,9 @@
public void GivenDialogGenerateCalculationButtonClicked_WhenCalculationSelectedAndDialogClosed_ThenUpdateCalculationGroup()
{
// Given
+ var random = new Random(21);
+ var normType = random.NextEnumValue();
+
using (var treeViewControl = new TreeViewControl())
{
var existingGroup = new CalculationGroup();
@@ -1828,7 +1831,13 @@
var hydraulicBoundaryLocation1 = new TestHydraulicBoundaryLocation();
var hydraulicBoundaryLocation2 = new TestHydraulicBoundaryLocation();
var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism();
- var assessmentSection = new AssessmentSectionStub();
+ var assessmentSection = new AssessmentSectionStub
+ {
+ FailureMechanismContribution =
+ {
+ NormativeNorm = normType
+ }
+ };
GrassCoverErosionOutwardsHydraulicBoundaryLocationsTestHelper.SetHydraulicBoundaryLocations(
failureMechanism, assessmentSection, new[]
@@ -1877,12 +1886,19 @@
Assert.AreSame(existingcalculation, group.Children[1]);
Assert.NotNull(dialog);
Assert.NotNull(grid);
+
+ FailureMechanismCategoryType expectedFailureMechanismCategoryType = GetCategoryTypeFromNormType(normType);
var firstCalculation = group.Children[2] as GrassCoverErosionOutwardsWaveConditionsCalculation;
Assert.IsNotNull(firstCalculation);
- Assert.AreSame(hydraulicBoundaryLocation1, firstCalculation.InputParameters.HydraulicBoundaryLocation);
+ FailureMechanismCategoryWaveConditionsInput firstCalculationInput = firstCalculation.InputParameters;
+ Assert.AreSame(hydraulicBoundaryLocation1, firstCalculationInput.HydraulicBoundaryLocation);
+ Assert.AreEqual(expectedFailureMechanismCategoryType, firstCalculationInput.CategoryType);
+
var secondCalculation = group.Children[3] as GrassCoverErosionOutwardsWaveConditionsCalculation;
Assert.IsNotNull(secondCalculation);
- Assert.AreSame(hydraulicBoundaryLocation2, secondCalculation.InputParameters.HydraulicBoundaryLocation);
+ FailureMechanismCategoryWaveConditionsInput secondCalculationInput = secondCalculation.InputParameters;
+ Assert.AreSame(hydraulicBoundaryLocation2, secondCalculationInput.HydraulicBoundaryLocation);
+ Assert.AreEqual(expectedFailureMechanismCategoryType, secondCalculationInput.CategoryType);
}
}