Index: Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Service/Ringtoets.WaveImpactAsphaltCover.Service.csproj
===================================================================
diff -u -r01c86929c554e5092193f6c7e0c673f58b5d2bbc -r5f55b35b1398af4604a31b78b7d4a144d209684f
--- Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Service/Ringtoets.WaveImpactAsphaltCover.Service.csproj (.../Ringtoets.WaveImpactAsphaltCover.Service.csproj) (revision 01c86929c554e5092193f6c7e0c673f58b5d2bbc)
+++ Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Service/Ringtoets.WaveImpactAsphaltCover.Service.csproj (.../Ringtoets.WaveImpactAsphaltCover.Service.csproj) (revision 5f55b35b1398af4604a31b78b7d4a144d209684f)
@@ -55,6 +55,11 @@
Core.Common.Base
False
+
+ {F49BD8B2-332A-4C91-A196-8CCE0A2C7D98}
+ Core.Common.Utils
+ False
+
{D4200F43-3F72-4F42-AF0A-8CED416A38EC}
Ringtoets.Common.Data
Index: Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Service/WaveImpactAsphaltCoverDataSynchronizationService.cs
===================================================================
diff -u -rc96cfd7d2d167db3b0775f7d76f320c5e582ae27 -r5f55b35b1398af4604a31b78b7d4a144d209684f
--- Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Service/WaveImpactAsphaltCoverDataSynchronizationService.cs (.../WaveImpactAsphaltCoverDataSynchronizationService.cs) (revision c96cfd7d2d167db3b0775f7d76f320c5e582ae27)
+++ Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Service/WaveImpactAsphaltCoverDataSynchronizationService.cs (.../WaveImpactAsphaltCoverDataSynchronizationService.cs) (revision 5f55b35b1398af4604a31b78b7d4a144d209684f)
@@ -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.WaveImpactAsphaltCover.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(WaveImpactAsphaltCoverFailureMechanism 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(WaveImpactAsphaltCoverWaveConditionsCalculation calculation)
{
calculation.InputParameters.HydraulicBoundaryLocation = null;
Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Service.Test/WaveImpactAsphaltCoverDataSynchronizationServiceTest.cs
===================================================================
diff -u -r2973c5f790a5131e427bd5f73e2a620044199639 -r5f55b35b1398af4604a31b78b7d4a144d209684f
--- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Service.Test/WaveImpactAsphaltCoverDataSynchronizationServiceTest.cs (.../WaveImpactAsphaltCoverDataSynchronizationServiceTest.cs) (revision 2973c5f790a5131e427bd5f73e2a620044199639)
+++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Service.Test/WaveImpactAsphaltCoverDataSynchronizationServiceTest.cs (.../WaveImpactAsphaltCoverDataSynchronizationServiceTest.cs) (revision 5f55b35b1398af4604a31b78b7d4a144d209684f)
@@ -229,5 +229,52 @@
// Assert
CollectionAssert.IsEmpty(affectedItems);
}
+
+ [Test]
+ public void ClearAllWaveConditionsCalculationOutput_FailureMechanismNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate call = () => WaveImpactAsphaltCoverDataSynchronizationService.ClearAllWaveConditionsCalculationOutput(null);
+
+ // Assert
+ var exception = Assert.Throws(call);
+ Assert.AreEqual("failureMechanism", exception.ParamName);
+ }
+
+ [Test]
+ public void ClearAllWaveConditionsCalculationOutput_WithOutput_ClearsCalculationsOutputAndReturnsAffectedCalculations()
+ {
+ // Setup
+ WaveImpactAsphaltCoverFailureMechanism failureMechanism = new WaveImpactAsphaltCoverFailureMechanism();
+ WaveImpactAsphaltCoverWaveConditionsCalculation calculation1 = new WaveImpactAsphaltCoverWaveConditionsCalculation
+ {
+ Output = new WaveImpactAsphaltCoverWaveConditionsOutput(Enumerable.Empty())
+ };
+
+ WaveImpactAsphaltCoverWaveConditionsCalculation calculation2 = new WaveImpactAsphaltCoverWaveConditionsCalculation
+ {
+ Output = new WaveImpactAsphaltCoverWaveConditionsOutput(Enumerable.Empty())
+ };
+
+ WaveImpactAsphaltCoverWaveConditionsCalculation calculation3 = new WaveImpactAsphaltCoverWaveConditionsCalculation();
+
+ failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation1);
+ failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation2);
+ failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation3);
+
+ // Call
+ IEnumerable affectedItems = WaveImpactAsphaltCoverDataSynchronizationService.ClearAllWaveConditionsCalculationOutput(failureMechanism);
+
+ // Assert
+ foreach (WaveImpactAsphaltCoverWaveConditionsCalculation calculation in failureMechanism.WaveConditionsCalculationGroup.Children.Cast())
+ {
+ Assert.IsNull(calculation.Output);
+ }
+ CollectionAssert.AreEqual(new[]
+ {
+ calculation1,
+ calculation2
+ }, affectedItems);
+ }
}
}
\ No newline at end of file