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