Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Utils/AssignUnassignCalculations.cs
===================================================================
diff -u -r9268ebeb017950ef5cc9d9d99f27bbbb91d5b19f -r3d83d16a31cb6fdc70e7b0e2c0e7f7915bcaa465
--- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Utils/AssignUnassignCalculations.cs (.../AssignUnassignCalculations.cs) (revision 9268ebeb017950ef5cc9d9d99f27bbbb91d5b19f)
+++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Utils/AssignUnassignCalculations.cs (.../AssignUnassignCalculations.cs) (revision 3d83d16a31cb6fdc70e7b0e2c0e7f7915bcaa465)
@@ -65,7 +65,7 @@
///
/// The objects.
/// The .
- ///
+ /// All the remaining calculations after deletion of the .
/// When any input parameter is null.
public static void Delete(
IEnumerable sectionResults,
@@ -80,6 +80,10 @@
{
throw new ArgumentNullException("calculation");
}
+ if (calculations == null)
+ {
+ throw new ArgumentNullException("calculations");
+ }
var sectionResultsArray = sectionResults.ToArray();
@@ -94,16 +98,14 @@
GrassCoverErosionInwardsCalculation calculation, Dictionary> calculationsPerSegmentName)
{
- var sectionsContainingOneCalculation = calculationsPerSegmentName.Where(kvp => kvp.Value.Count == 1).ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
-
IEnumerable sectionResultsUsingCalculation =
sectionResults.Where(sr => sr.Calculation != null && sr.Calculation.Equals(calculation));
foreach (var sectionResult in sectionResultsUsingCalculation)
{
string sectionName = sectionResult.Section.Name;
- if (sectionsContainingOneCalculation.ContainsKey(sectionName))
+ if (calculationsPerSegmentName.ContainsKey(sectionName) && calculationsPerSegmentName[sectionName].Count == 1)
{
- sectionResult.Calculation = sectionsContainingOneCalculation[sectionName][0];
+ sectionResult.Calculation = calculationsPerSegmentName[sectionName].Single();
continue;
}
sectionResult.Calculation = null;
Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Utils.Test/AssignUnassignCalculationsTest.cs
===================================================================
diff -u -r9268ebeb017950ef5cc9d9d99f27bbbb91d5b19f -r3d83d16a31cb6fdc70e7b0e2c0e7f7915bcaa465
--- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Utils.Test/AssignUnassignCalculationsTest.cs (.../AssignUnassignCalculationsTest.cs) (revision 9268ebeb017950ef5cc9d9d99f27bbbb91d5b19f)
+++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.Utils.Test/AssignUnassignCalculationsTest.cs (.../AssignUnassignCalculationsTest.cs) (revision 3d83d16a31cb6fdc70e7b0e2c0e7f7915bcaa465)
@@ -170,7 +170,7 @@
var calculation = new GrassCoverErosionInwardsCalculation();
// Call
- TestDelegate call = () => AssignUnassignCalculations.Update(null, calculation);
+ TestDelegate call = () => AssignUnassignCalculations.Delete(null, calculation, Enumerable.Empty());
// Assert
string paramName = Assert.Throws(call).ParamName;
@@ -184,14 +184,28 @@
var failureMechanism = new GrassCoverErosionInwardsFailureMechanism();
// Call
- TestDelegate call = () => AssignUnassignCalculations.Update(failureMechanism.SectionResults, null);
+ TestDelegate call = () => AssignUnassignCalculations.Delete(failureMechanism.SectionResults, null, Enumerable.Empty());
// Assert
string paramName = Assert.Throws(call).ParamName;
Assert.AreEqual("calculation", paramName);
}
[Test]
+ public void Delete_NullCalculations_ThrowsArgumentNullException()
+ {
+ // Setup
+ var failureMechanism = new GrassCoverErosionInwardsFailureMechanism();
+
+ // Call
+ TestDelegate call = () => AssignUnassignCalculations.Delete(failureMechanism.SectionResults, new GrassCoverErosionInwardsCalculation(), null);
+
+ // Assert
+ string paramName = Assert.Throws(call).ParamName;
+ Assert.AreEqual("calculations", paramName);
+ }
+
+ [Test]
public void Delete_RemoveCalculationAssignedToSectionResult_SectionResultCalculationNull()
{
// Setup
@@ -221,7 +235,7 @@
AssignUnassignCalculations.Delete(failureMechanism.SectionResults, calculation, Enumerable.Empty());
// Assert
- Assert.IsNull(failureMechanism.SectionResults.First().Calculation);
+ Assert.IsNull(failureMechanism.SectionResults.Single().Calculation);
}
[Test]
@@ -258,7 +272,7 @@
new Point2D(0.0, 0.0), new Point2D(1.1, 1.1)
}));
- failureMechanism.SectionResults.First().Calculation = calculation1;
+ failureMechanism.SectionResults.Single().Calculation = calculation1;
var remainingCalculations = new[]
{
@@ -269,7 +283,7 @@
AssignUnassignCalculations.Delete(failureMechanism.SectionResults, calculation1, remainingCalculations);
// Assert
- Assert.AreSame(calculation2, failureMechanism.SectionResults.First().Calculation);
+ Assert.AreSame(calculation2, failureMechanism.SectionResults.Single().Calculation);
}
}
}
\ No newline at end of file