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