Index: Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Service/Ringtoets.StabilityStoneCover.Service.csproj
===================================================================
diff -u -re69acb9595f7bf1d202ddd1fb51934b66768b75d -r77ac74d895ded1f0d1f81a67b02a2f4d80299a3b
--- Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Service/Ringtoets.StabilityStoneCover.Service.csproj (.../Ringtoets.StabilityStoneCover.Service.csproj) (revision e69acb9595f7bf1d202ddd1fb51934b66768b75d)
+++ Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Service/Ringtoets.StabilityStoneCover.Service.csproj (.../Ringtoets.StabilityStoneCover.Service.csproj) (revision 77ac74d895ded1f0d1f81a67b02a2f4d80299a3b)
@@ -65,6 +65,11 @@
Core.Common.Base
False
+
+ {F49BD8B2-332A-4C91-A196-8CCE0A2C7D98}
+ Core.Common.Utils
+ False
+
{d4200f43-3f72-4f42-af0a-8ced416a38ec}
Ringtoets.Common.Data
Index: Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Service/StabilityStoneCoverDataSynchronizationService.cs
===================================================================
diff -u -r2973c5f790a5131e427bd5f73e2a620044199639 -r77ac74d895ded1f0d1f81a67b02a2f4d80299a3b
--- Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Service/StabilityStoneCoverDataSynchronizationService.cs (.../StabilityStoneCoverDataSynchronizationService.cs) (revision 2973c5f790a5131e427bd5f73e2a620044199639)
+++ Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Service/StabilityStoneCoverDataSynchronizationService.cs (.../StabilityStoneCoverDataSynchronizationService.cs) (revision 77ac74d895ded1f0d1f81a67b02a2f4d80299a3b)
@@ -23,6 +23,7 @@
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
+using Core.Common.Utils.Extensions;
using Ringtoets.HydraRing.Data;
using Ringtoets.StabilityStoneCover.Data;
@@ -95,6 +96,32 @@
return affectedItems;
}
+ ///
+ /// Clears the output for all calculations in the .
+ ///
+ /// The
+ /// which contains the calculations.
+ /// An of calculations which are affected by
+ /// clearing the output.
+ /// Thrown when
+ /// is null.
+ public static IEnumerable ClearAllWaveConditionsCalculationOutput(StabilityStoneCoverFailureMechanism failureMechanism)
+ {
+ if (failureMechanism == null)
+ {
+ throw new ArgumentNullException("failureMechanism");
+ }
+
+ var affectedItems = failureMechanism.Calculations
+ .Cast()
+ .Where(c => c.HasOutput)
+ .ToArray();
+
+ affectedItems.ForEachElementDo(ClearWaveConditionsCalculationOutput);
+
+ return affectedItems;
+ }
+
private static void ClearHydraulicBoundaryLocation(StabilityStoneCoverWaveConditionsCalculation calculation)
{
calculation.InputParameters.HydraulicBoundaryLocation = null;
Index: Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Service.Test/StabilityStoneCoverDataSynchronizationServiceTest.cs
===================================================================
diff -u -rc96cfd7d2d167db3b0775f7d76f320c5e582ae27 -r77ac74d895ded1f0d1f81a67b02a2f4d80299a3b
--- Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Service.Test/StabilityStoneCoverDataSynchronizationServiceTest.cs (.../StabilityStoneCoverDataSynchronizationServiceTest.cs) (revision c96cfd7d2d167db3b0775f7d76f320c5e582ae27)
+++ Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Service.Test/StabilityStoneCoverDataSynchronizationServiceTest.cs (.../StabilityStoneCoverDataSynchronizationServiceTest.cs) (revision 77ac74d895ded1f0d1f81a67b02a2f4d80299a3b)
@@ -23,6 +23,7 @@
using System.Collections.Generic;
using System.Linq;
using NUnit.Framework;
+using Ringtoets.Common.Data.Probability;
using Ringtoets.HydraRing.Data;
using Ringtoets.Revetment.Data;
using Ringtoets.StabilityStoneCover.Data;
@@ -230,5 +231,52 @@
// Assert
CollectionAssert.IsEmpty(affectedItems);
}
+
+ [Test]
+ public void ClearAllWaveConditionsCalculationOutput_FailureMechanismNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate call = () => StabilityStoneCoverDataSynchronizationService.ClearAllWaveConditionsCalculationOutput(null);
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("failureMechanism", exception.ParamName);
+ }
+
+ [Test]
+ public void ClearAllWaveConditionsCalculationOutput_WithOutput_ClearsCalculationsOutputAndReturnsAffectedCalculations()
+ {
+ // Setup
+ StabilityStoneCoverFailureMechanism failureMechanism = new StabilityStoneCoverFailureMechanism();
+ StabilityStoneCoverWaveConditionsCalculation calculation1 = new StabilityStoneCoverWaveConditionsCalculation
+ {
+ Output = new StabilityStoneCoverWaveConditionsOutput(Enumerable.Empty(), Enumerable.Empty())
+ };
+
+ StabilityStoneCoverWaveConditionsCalculation calculation2 = new StabilityStoneCoverWaveConditionsCalculation
+ {
+ Output = new StabilityStoneCoverWaveConditionsOutput(Enumerable.Empty(), Enumerable.Empty())
+ };
+
+ StabilityStoneCoverWaveConditionsCalculation calculation3 = new StabilityStoneCoverWaveConditionsCalculation();
+
+ failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation1);
+ failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation2);
+ failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation3);
+
+ // Call
+ IEnumerable affectedItems = StabilityStoneCoverDataSynchronizationService.ClearAllWaveConditionsCalculationOutput(failureMechanism);
+
+ // Assert
+ foreach (StabilityStoneCoverWaveConditionsCalculation calculation in failureMechanism.WaveConditionsCalculationGroup.Children.Cast())
+ {
+ Assert.IsNull(calculation.Output);
+ }
+ CollectionAssert.AreEqual(new[]
+ {
+ calculation1,
+ calculation2
+ }, affectedItems);
+ }
}
}
\ No newline at end of file