Index: Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/DuneErosionDataSynchronizationService.cs
===================================================================
diff -u -ree62f9ef8c69cd574bd23077bf9079e3e8fbdd8c -rf0c2e0726fb0d7a85fd1e192f3775c8dba10605f
--- Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/DuneErosionDataSynchronizationService.cs (.../DuneErosionDataSynchronizationService.cs) (revision ee62f9ef8c69cd574bd23077bf9079e3e8fbdd8c)
+++ Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Service/DuneErosionDataSynchronizationService.cs (.../DuneErosionDataSynchronizationService.cs) (revision f0c2e0726fb0d7a85fd1e192f3775c8dba10605f)
@@ -115,19 +115,32 @@
}
///
- /// Clears the output of the dune location calculations within the collection.
+ /// Clears the output of the dune location calculations within the dune erosion failure mechanism.
///
- /// The calculations for which the output needs to be cleared.
+ /// The failure mechanism for which the output of the calculations needs to be cleared.
/// All objects changed during the clear.
- /// Thrown when is null.
- public static IEnumerable ClearDuneCalculationsOutput(IEnumerable calculations)
+ /// Thrown when is null.
+ public static IEnumerable ClearDuneCalculationOutputs(DuneErosionFailureMechanism failureMechanism)
{
- if (calculations == null)
+ if (failureMechanism == null)
{
- throw new ArgumentNullException(nameof(calculations));
+ throw new ArgumentNullException(nameof(failureMechanism));
}
var affectedCalculations = new List();
+
+ affectedCalculations.AddRange(ClearDuneCalculationsOutput(failureMechanism.CalculationsForMechanismSpecificFactorizedSignalingNorm));
+ affectedCalculations.AddRange(ClearDuneCalculationsOutput(failureMechanism.CalculationsForMechanismSpecificSignalingNorm));
+ affectedCalculations.AddRange(ClearDuneCalculationsOutput(failureMechanism.CalculationsForMechanismSpecificLowerLimitNorm));
+ affectedCalculations.AddRange(ClearDuneCalculationsOutput(failureMechanism.CalculationsForLowerLimitNorm));
+ affectedCalculations.AddRange(ClearDuneCalculationsOutput(failureMechanism.CalculationsForFactorizedLowerLimitNorm));
+
+ return affectedCalculations;
+ }
+
+ private static IEnumerable ClearDuneCalculationsOutput(IEnumerable calculations)
+ {
+ var affectedCalculations = new List();
foreach (DuneLocationCalculation calculation in calculations)
{
if (calculation.Output != null)
Index: Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Service.Test/DuneErosionDataSynchronizationServiceTest.cs
===================================================================
diff -u -ree62f9ef8c69cd574bd23077bf9079e3e8fbdd8c -rf0c2e0726fb0d7a85fd1e192f3775c8dba10605f
--- Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Service.Test/DuneErosionDataSynchronizationServiceTest.cs (.../DuneErosionDataSynchronizationServiceTest.cs) (revision ee62f9ef8c69cd574bd23077bf9079e3e8fbdd8c)
+++ Ringtoets/DuneErosion/test/Ringtoets.DuneErosion.Service.Test/DuneErosionDataSynchronizationServiceTest.cs (.../DuneErosionDataSynchronizationServiceTest.cs) (revision f0c2e0726fb0d7a85fd1e192f3775c8dba10605f)
@@ -254,41 +254,55 @@
}
[Test]
- public void ClearDuneLocationOutput_CalculationsNull_ThrowsArgumentNullException()
+ public void ClearDuneCalculationOutputs_FailureMechanismNull_ThrowsArgumentNullException()
{
// Call
- TestDelegate call = () => DuneErosionDataSynchronizationService.ClearDuneCalculationsOutput(null);
+ TestDelegate call = () => DuneErosionDataSynchronizationService.ClearDuneCalculationOutputs(null);
// Assert
var exception = Assert.Throws(call);
- Assert.AreEqual("calculations", exception.ParamName);
+ Assert.AreEqual("failureMechanism", exception.ParamName);
}
[Test]
- public void ClearDuneLocationOutput_CalculationsWithOutput_OutputClearedAndAffectedItemsReturned()
+ public void ClearDuneCalculationOutputs_CalculationsWithOutput_OutputClearedAndAffectedItemsReturned()
{
// Setup
- var calculationWithOutput = new DuneLocationCalculation(new TestDuneLocation())
+ var duneLocations = new[]
{
- Output = new TestDuneLocationOutput()
+ new TestDuneLocation(),
+ new TestDuneLocation()
};
- var calculationWithoutOutput = new DuneLocationCalculation(new TestDuneLocation());
- var calculations = new[]
- {
- calculationWithOutput,
- calculationWithoutOutput
- };
+ var failureMechanism = new DuneErosionFailureMechanism();
+ failureMechanism.DuneLocations.AddRange(duneLocations);
+ failureMechanism.SetDuneLocationCalculations(duneLocations);
+ failureMechanism.CalculationsForMechanismSpecificFactorizedSignalingNorm.First().Output = new TestDuneLocationOutput();
+ failureMechanism.CalculationsForMechanismSpecificSignalingNorm.First().Output = new TestDuneLocationOutput();
+ failureMechanism.CalculationsForMechanismSpecificLowerLimitNorm.First().Output = new TestDuneLocationOutput();
+ failureMechanism.CalculationsForLowerLimitNorm.First().Output = new TestDuneLocationOutput();
+ failureMechanism.CalculationsForFactorizedLowerLimitNorm.First().Output = new TestDuneLocationOutput();
+
// Call
- IEnumerable affected = DuneErosionDataSynchronizationService.ClearDuneCalculationsOutput(calculations);
+ IEnumerable affected = DuneErosionDataSynchronizationService.ClearDuneCalculationOutputs(failureMechanism);
// Assert
- Assert.IsNull(calculationWithOutput.Output);
- CollectionAssert.AreEqual(new[]
+ var expectedAffectedCalculations = new[]
{
- calculationWithOutput
- }, affected);
+ failureMechanism.CalculationsForMechanismSpecificFactorizedSignalingNorm.First(),
+ failureMechanism.CalculationsForMechanismSpecificSignalingNorm.First(),
+ failureMechanism.CalculationsForMechanismSpecificLowerLimitNorm.First(),
+ failureMechanism.CalculationsForLowerLimitNorm.First(),
+ failureMechanism.CalculationsForFactorizedLowerLimitNorm.First()
+ };
+ CollectionAssert.AreEquivalent(expectedAffectedCalculations, affected);
+
+ Assert.True(failureMechanism.CalculationsForMechanismSpecificFactorizedSignalingNorm.All(calc => calc.Output == null));
+ Assert.True(failureMechanism.CalculationsForMechanismSpecificSignalingNorm.All(calc => calc.Output == null));
+ Assert.True(failureMechanism.CalculationsForMechanismSpecificLowerLimitNorm.All(calc => calc.Output == null));
+ Assert.True(failureMechanism.CalculationsForLowerLimitNorm.All(calc => calc.Output == null));
+ Assert.True(failureMechanism.CalculationsForFactorizedLowerLimitNorm.All(calc => calc.Output == null));
}
}
}
\ No newline at end of file
Index: Ringtoets/Integration/test/Ringtoets.Integration.TestUtil/TestDataGenerator.cs
===================================================================
diff -u -r3e2a8feb80fe42eb72d66a456a21e030f2d25674 -rf0c2e0726fb0d7a85fd1e192f3775c8dba10605f
--- Ringtoets/Integration/test/Ringtoets.Integration.TestUtil/TestDataGenerator.cs (.../TestDataGenerator.cs) (revision 3e2a8feb80fe42eb72d66a456a21e030f2d25674)
+++ Ringtoets/Integration/test/Ringtoets.Integration.TestUtil/TestDataGenerator.cs (.../TestDataGenerator.cs) (revision f0c2e0726fb0d7a85fd1e192f3775c8dba10605f)
@@ -125,11 +125,7 @@
{
AssessmentSection assessmentSection = GetAssessmentSectionWithAllCalculationConfigurations(composition);
RingtoetsDataSynchronizationService.ClearHydraulicBoundaryLocationCalculationOutput(assessmentSection);
- DuneErosionDataSynchronizationService.ClearDuneCalculationsOutput(assessmentSection.DuneErosion.CalculationsForMechanismSpecificFactorizedSignalingNorm);
- DuneErosionDataSynchronizationService.ClearDuneCalculationsOutput(assessmentSection.DuneErosion.CalculationsForMechanismSpecificSignalingNorm);
- DuneErosionDataSynchronizationService.ClearDuneCalculationsOutput(assessmentSection.DuneErosion.CalculationsForMechanismSpecificLowerLimitNorm);
- DuneErosionDataSynchronizationService.ClearDuneCalculationsOutput(assessmentSection.DuneErosion.CalculationsForLowerLimitNorm);
- DuneErosionDataSynchronizationService.ClearDuneCalculationsOutput(assessmentSection.DuneErosion.CalculationsForFactorizedLowerLimitNorm);
+ DuneErosionDataSynchronizationService.ClearDuneCalculationOutputs(assessmentSection.DuneErosion);
return assessmentSection;
}