Index: Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Service/GrassCoverErosionOutwardsDataSynchronizationService.cs =================================================================== diff -u -r65cec137f19d9ded25248ba376b2ea8d43c18c2c -rc96cfd7d2d167db3b0775f7d76f320c5e582ae27 --- Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Service/GrassCoverErosionOutwardsDataSynchronizationService.cs (.../GrassCoverErosionOutwardsDataSynchronizationService.cs) (revision 65cec137f19d9ded25248ba376b2ea8d43c18c2c) +++ Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Service/GrassCoverErosionOutwardsDataSynchronizationService.cs (.../GrassCoverErosionOutwardsDataSynchronizationService.cs) (revision c96cfd7d2d167db3b0775f7d76f320c5e582ae27) @@ -91,7 +91,7 @@ /// removal of data. /// Thrown when /// is null. - public static IEnumerable ClearAllCalculationOutputAndHydraulicBoundaryLocations(GrassCoverErosionOutwardsFailureMechanism failureMechanism) + public static IEnumerable ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations(GrassCoverErosionOutwardsFailureMechanism failureMechanism) { if (failureMechanism == null) { Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Service.Test/GrassCoverErosionOutwardsDataSynchronizationServiceTest.cs =================================================================== diff -u -r65cec137f19d9ded25248ba376b2ea8d43c18c2c -rc96cfd7d2d167db3b0775f7d76f320c5e582ae27 --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Service.Test/GrassCoverErosionOutwardsDataSynchronizationServiceTest.cs (.../GrassCoverErosionOutwardsDataSynchronizationServiceTest.cs) (revision 65cec137f19d9ded25248ba376b2ea8d43c18c2c) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Service.Test/GrassCoverErosionOutwardsDataSynchronizationServiceTest.cs (.../GrassCoverErosionOutwardsDataSynchronizationServiceTest.cs) (revision c96cfd7d2d167db3b0775f7d76f320c5e582ae27) @@ -134,18 +134,18 @@ } [Test] - public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_WithoutAssessmentSection_ThrowsArgumentNullException() + public void ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations_WithoutAssessmentSection_ThrowsArgumentNullException() { // Call - TestDelegate call = () => GrassCoverErosionOutwardsDataSynchronizationService.ClearAllCalculationOutputAndHydraulicBoundaryLocations(null); + TestDelegate call = () => GrassCoverErosionOutwardsDataSynchronizationService.ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations(null); // Assert var exception = Assert.Throws(call); Assert.AreEqual("failureMechanism", exception.ParamName); } [Test] - public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_CalculationsWithHydraulicBoundaryLocationAndOutput_ClearsHydraulicBoundaryLocationAndCalculationsAndReturnsAffectedCalculations() + public void ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations_CalculationsWithHydraulicBoundaryLocationAndOutput_ClearsHydraulicBoundaryLocationAndCalculationsAndReturnsAffectedCalculations() { // Setup GrassCoverErosionOutwardsFailureMechanism failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); @@ -176,7 +176,7 @@ failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation3); // Call - IEnumerable affectedItems = GrassCoverErosionOutwardsDataSynchronizationService.ClearAllCalculationOutputAndHydraulicBoundaryLocations(failureMechanism); + IEnumerable affectedItems = GrassCoverErosionOutwardsDataSynchronizationService.ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations(failureMechanism); // Assert foreach (GrassCoverErosionOutwardsWaveConditionsCalculation calculation in failureMechanism.WaveConditionsCalculationGroup.Children.Cast()) @@ -192,7 +192,7 @@ } [Test] - public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_CalculationsWithHydraulicBoundaryLocationNoOutput_ClearsHydraulicBoundaryLocationAndReturnsAffectedCalculations() + public void ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations_CalculationsWithHydraulicBoundaryLocationNoOutput_ClearsHydraulicBoundaryLocationAndReturnsAffectedCalculations() { // Setup GrassCoverErosionOutwardsFailureMechanism failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); @@ -221,7 +221,7 @@ failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation3); // Call - IEnumerable affectedItems = GrassCoverErosionOutwardsDataSynchronizationService.ClearAllCalculationOutputAndHydraulicBoundaryLocations(failureMechanism); + IEnumerable affectedItems = GrassCoverErosionOutwardsDataSynchronizationService.ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations(failureMechanism); // Assert foreach (GrassCoverErosionOutwardsWaveConditionsCalculation calculation in failureMechanism.WaveConditionsCalculationGroup.Children.Cast()) @@ -236,7 +236,7 @@ } [Test] - public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_CalculationsWithOutputAndNoHydraulicBoundaryLocation_ClearsOutputAndReturnsAffectedCalculations() + public void ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations_CalculationsWithOutputAndNoHydraulicBoundaryLocation_ClearsOutputAndReturnsAffectedCalculations() { // Setup GrassCoverErosionOutwardsFailureMechanism failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); @@ -258,7 +258,7 @@ failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation3); // Call - IEnumerable affectedItems = GrassCoverErosionOutwardsDataSynchronizationService.ClearAllCalculationOutputAndHydraulicBoundaryLocations(failureMechanism); + IEnumerable affectedItems = GrassCoverErosionOutwardsDataSynchronizationService.ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations(failureMechanism); // Assert foreach (GrassCoverErosionOutwardsWaveConditionsCalculation calculation in failureMechanism.WaveConditionsCalculationGroup.Children.Cast()) Index: Ringtoets/Integration/src/Ringtoets.Integration.Service/Ringtoets.Integration.Service.csproj =================================================================== diff -u -rfbdcde760eb5401367c8b922504819cd263d58a2 -rc96cfd7d2d167db3b0775f7d76f320c5e582ae27 --- Ringtoets/Integration/src/Ringtoets.Integration.Service/Ringtoets.Integration.Service.csproj (.../Ringtoets.Integration.Service.csproj) (revision fbdcde760eb5401367c8b922504819cd263d58a2) +++ Ringtoets/Integration/src/Ringtoets.Integration.Service/Ringtoets.Integration.Service.csproj (.../Ringtoets.Integration.Service.csproj) (revision c96cfd7d2d167db3b0775f7d76f320c5e582ae27) @@ -115,6 +115,16 @@ Ringtoets.StabilityStoneCover.Service False + + {567E0B69-5280-41CE-ADD6-443725A61C86} + Ringtoets.WaveImpactAsphaltCover.Data + False + + + {9E4A7C0B-F8B5-4101-B9D5-90F3F3C0FF7C} + Ringtoets.WaveImpactAsphaltCover.Service + False + Index: Ringtoets/Integration/src/Ringtoets.Integration.Service/RingtoetsDataSynchronizationService.cs =================================================================== diff -u -r65cec137f19d9ded25248ba376b2ea8d43c18c2c -rc96cfd7d2d167db3b0775f7d76f320c5e582ae27 --- Ringtoets/Integration/src/Ringtoets.Integration.Service/RingtoetsDataSynchronizationService.cs (.../RingtoetsDataSynchronizationService.cs) (revision 65cec137f19d9ded25248ba376b2ea8d43c18c2c) +++ Ringtoets/Integration/src/Ringtoets.Integration.Service/RingtoetsDataSynchronizationService.cs (.../RingtoetsDataSynchronizationService.cs) (revision c96cfd7d2d167db3b0775f7d76f320c5e582ae27) @@ -36,6 +36,8 @@ using Ringtoets.Piping.Service; using Ringtoets.StabilityStoneCover.Data; using Ringtoets.StabilityStoneCover.Service; +using Ringtoets.WaveImpactAsphaltCover.Data; +using Ringtoets.WaveImpactAsphaltCover.Service; namespace Ringtoets.Integration.Service { @@ -67,6 +69,7 @@ var stabilityStoneCoverFailureMechanism = failureMechanism as StabilityStoneCoverFailureMechanism; var heightStructuresFailureMechanism = failureMechanism as HeightStructuresFailureMechanism; var grassCoverErosionOutwardsFailureMechanism = failureMechanism as GrassCoverErosionOutwardsFailureMechanism; + var waveImpactAsphaltCoverFailureMechanism = failureMechanism as WaveImpactAsphaltCoverFailureMechanism; if (pipingFailureMechanism != null) { @@ -80,9 +83,13 @@ { affectedItems.AddRange(StabilityStoneCoverDataSynchronizationService.ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations(stabilityStoneCoverFailureMechanism)); } + if (waveImpactAsphaltCoverFailureMechanism != null) + { + affectedItems.AddRange(WaveImpactAsphaltCoverDataSynchronizationService.ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations(waveImpactAsphaltCoverFailureMechanism)); + } if (grassCoverErosionOutwardsFailureMechanism != null) { - affectedItems.AddRange(GrassCoverErosionOutwardsDataSynchronizationService.ClearAllCalculationOutputAndHydraulicBoundaryLocations(grassCoverErosionOutwardsFailureMechanism)); + affectedItems.AddRange(GrassCoverErosionOutwardsDataSynchronizationService.ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations(grassCoverErosionOutwardsFailureMechanism)); } if (heightStructuresFailureMechanism != null) { Index: Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/Ringtoets.Integration.Service.Test.csproj =================================================================== diff -u -rfbdcde760eb5401367c8b922504819cd263d58a2 -rc96cfd7d2d167db3b0775f7d76f320c5e582ae27 --- Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/Ringtoets.Integration.Service.Test.csproj (.../Ringtoets.Integration.Service.Test.csproj) (revision fbdcde760eb5401367c8b922504819cd263d58a2) +++ Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/Ringtoets.Integration.Service.Test.csproj (.../Ringtoets.Integration.Service.Test.csproj) (revision c96cfd7d2d167db3b0775f7d76f320c5e582ae27) @@ -110,6 +110,10 @@ {B479E3AF-7C34-488C-BB73-D324100D36C9} Ringtoets.StabilityStoneCover.Data + + {567E0B69-5280-41CE-ADD6-443725A61C86} + Ringtoets.WaveImpactAsphaltCover.Data + {11F1F874-45AF-43E4-8AE5-15A5C9593E28} Ringtoets.Integration.Data Index: Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/RingtoetsDataSynchronizationServiceTest.cs =================================================================== diff -u -r65cec137f19d9ded25248ba376b2ea8d43c18c2c -rc96cfd7d2d167db3b0775f7d76f320c5e582ae27 --- Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/RingtoetsDataSynchronizationServiceTest.cs (.../RingtoetsDataSynchronizationServiceTest.cs) (revision 65cec137f19d9ded25248ba376b2ea8d43c18c2c) +++ Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/RingtoetsDataSynchronizationServiceTest.cs (.../RingtoetsDataSynchronizationServiceTest.cs) (revision c96cfd7d2d167db3b0775f7d76f320c5e582ae27) @@ -37,6 +37,7 @@ using Ringtoets.Piping.KernelWrapper.TestUtil; using Ringtoets.Revetment.Data; using Ringtoets.StabilityStoneCover.Data; +using Ringtoets.WaveImpactAsphaltCover.Data; namespace Ringtoets.Integration.Service.Test { @@ -278,8 +279,8 @@ Output = new StabilityStoneCoverWaveConditionsOutput(Enumerable.Empty(), Enumerable.Empty()) }; - var emptyGrassCoverErosionOutwardsCalculation = new GrassCoverErosionOutwardsWaveConditionsCalculation(); - var grassCoverErosionOutwardsCalculation = new GrassCoverErosionOutwardsWaveConditionsCalculation + var emptyGrassCoverErosionOutwardsWaveConditionsCalculation = new GrassCoverErosionOutwardsWaveConditionsCalculation(); + var grassCoverErosionOutwardsWaveConditionsCalculation = new GrassCoverErosionOutwardsWaveConditionsCalculation { InputParameters = { @@ -288,6 +289,16 @@ Output = new GrassCoverErosionOutwardsWaveConditionsOutput(Enumerable.Empty()) }; + var emptyWaveImpactAshpaltCoverWaveConditionsCalculation = new WaveImpactAsphaltCoverWaveConditionsCalculation(); + var waveImpactAshpaltCoverWaveConditionsCalculation = new WaveImpactAsphaltCoverWaveConditionsCalculation + { + InputParameters = + { + HydraulicBoundaryLocation = hydraulicBoundaryLocation + }, + Output = new WaveImpactAsphaltCoverWaveConditionsOutput(Enumerable.Empty()) + }; + assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(emptyPipingCalculation); assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(pipingCalculation); assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(emptyGrassCoverErosionInwardsCalculation); @@ -296,29 +307,35 @@ assessmentSection.HeightStructures.CalculationsGroup.Children.Add(heightStructuresCalculation); assessmentSection.StabilityStoneCover.WaveConditionsCalculationGroup.Children.Add(emptyStabilityStoneCoverWaveConditionsCalculation); assessmentSection.StabilityStoneCover.WaveConditionsCalculationGroup.Children.Add(stabilityStoneCoverWaveConditionsCalculation); - assessmentSection.GrassCoverErosionOutwards.WaveConditionsCalculationGroup.Children.Add(emptyGrassCoverErosionOutwardsCalculation); - assessmentSection.GrassCoverErosionOutwards.WaveConditionsCalculationGroup.Children.Add(grassCoverErosionOutwardsCalculation); + assessmentSection.GrassCoverErosionOutwards.WaveConditionsCalculationGroup.Children.Add(grassCoverErosionOutwardsWaveConditionsCalculation); + assessmentSection.GrassCoverErosionOutwards.WaveConditionsCalculationGroup.Children.Add(emptyGrassCoverErosionOutwardsWaveConditionsCalculation); + assessmentSection.WaveImpactAsphaltCover.WaveConditionsCalculationGroup.Children.Add(emptyWaveImpactAshpaltCoverWaveConditionsCalculation); + assessmentSection.WaveImpactAsphaltCover.WaveConditionsCalculationGroup.Children.Add(waveImpactAshpaltCoverWaveConditionsCalculation); // Call + IEnumerable affectedItems = RingtoetsDataSynchronizationService.ClearAllCalculationOutputAndHydraulicBoundaryLocations(assessmentSection); // Assert Assert.IsNull(pipingCalculation.InputParameters.HydraulicBoundaryLocation); Assert.IsNull(grassCoverErosionInwardsCalculation.InputParameters.HydraulicBoundaryLocation); Assert.IsNull(heightStructuresCalculation.InputParameters.HydraulicBoundaryLocation); Assert.IsNull(stabilityStoneCoverWaveConditionsCalculation.InputParameters.HydraulicBoundaryLocation); - Assert.IsNull(grassCoverErosionOutwardsCalculation.InputParameters.HydraulicBoundaryLocation); + Assert.IsNull(grassCoverErosionOutwardsWaveConditionsCalculation.InputParameters.HydraulicBoundaryLocation); + Assert.IsNull(waveImpactAshpaltCoverWaveConditionsCalculation.InputParameters.HydraulicBoundaryLocation); Assert.IsNull(pipingCalculation.Output); Assert.IsNull(grassCoverErosionInwardsCalculation.Output); Assert.IsNull(heightStructuresCalculation.Output); Assert.IsNull(stabilityStoneCoverWaveConditionsCalculation.Output); - Assert.IsNull(grassCoverErosionOutwardsCalculation.Output); + Assert.IsNull(grassCoverErosionOutwardsWaveConditionsCalculation.Output); + Assert.IsNull(waveImpactAshpaltCoverWaveConditionsCalculation.Output); CollectionAssert.AreEqual(new ICalculation[] { pipingCalculation, grassCoverErosionInwardsCalculation, stabilityStoneCoverWaveConditionsCalculation, - grassCoverErosionOutwardsCalculation, + waveImpactAshpaltCoverWaveConditionsCalculation, + grassCoverErosionOutwardsWaveConditionsCalculation, heightStructuresCalculation }, affectedItems); } @@ -366,15 +383,24 @@ } }; - var emptyGrassCoverErosionOutwardsCalculation = new GrassCoverErosionOutwardsWaveConditionsCalculation(); - var grassCoverErosionOutwardsCalculation = new GrassCoverErosionOutwardsWaveConditionsCalculation + var emptyGrassCoverErosionOutwardsWaveConditionsCalculation = new GrassCoverErosionOutwardsWaveConditionsCalculation(); + var grassCoverErosionOutwardsWaveConditionsCalculation = new GrassCoverErosionOutwardsWaveConditionsCalculation { InputParameters = { HydraulicBoundaryLocation = hydraulicBoundaryLocation } }; + var emptyWaveImpactAshpaltCoverWaveConditionsCalculation = new WaveImpactAsphaltCoverWaveConditionsCalculation(); + var waveImpactAshpaltCoverWaveConditionsCalculation = new WaveImpactAsphaltCoverWaveConditionsCalculation + { + InputParameters = + { + HydraulicBoundaryLocation = hydraulicBoundaryLocation + } + }; + assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(emptyPipingCalculation); assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(pipingCalculation); assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(emptyGrassCoverErosionInwardsCalculation); @@ -383,8 +409,10 @@ assessmentSection.HeightStructures.CalculationsGroup.Children.Add(heightStructuresCalculation); assessmentSection.StabilityStoneCover.WaveConditionsCalculationGroup.Children.Add(emptyStabilityStoneCoverWaveConditionsCalculation); assessmentSection.StabilityStoneCover.WaveConditionsCalculationGroup.Children.Add(stabilityStoneCoverWaveConditionsCalculation); - assessmentSection.GrassCoverErosionOutwards.WaveConditionsCalculationGroup.Children.Add(emptyGrassCoverErosionOutwardsCalculation); - assessmentSection.GrassCoverErosionOutwards.WaveConditionsCalculationGroup.Children.Add(grassCoverErosionOutwardsCalculation); + assessmentSection.GrassCoverErosionOutwards.WaveConditionsCalculationGroup.Children.Add(emptyGrassCoverErosionOutwardsWaveConditionsCalculation); + assessmentSection.GrassCoverErosionOutwards.WaveConditionsCalculationGroup.Children.Add(grassCoverErosionOutwardsWaveConditionsCalculation); + assessmentSection.WaveImpactAsphaltCover.WaveConditionsCalculationGroup.Children.Add(emptyWaveImpactAshpaltCoverWaveConditionsCalculation); + assessmentSection.WaveImpactAsphaltCover.WaveConditionsCalculationGroup.Children.Add(waveImpactAshpaltCoverWaveConditionsCalculation); // Call IEnumerable affectedItems = RingtoetsDataSynchronizationService.ClearAllCalculationOutputAndHydraulicBoundaryLocations(assessmentSection); @@ -394,13 +422,15 @@ Assert.IsNull(grassCoverErosionInwardsCalculation.InputParameters.HydraulicBoundaryLocation); Assert.IsNull(heightStructuresCalculation.InputParameters.HydraulicBoundaryLocation); Assert.IsNull(stabilityStoneCoverWaveConditionsCalculation.InputParameters.HydraulicBoundaryLocation); - Assert.IsNull(grassCoverErosionOutwardsCalculation.InputParameters.HydraulicBoundaryLocation); + Assert.IsNull(grassCoverErosionOutwardsWaveConditionsCalculation.InputParameters.HydraulicBoundaryLocation); + Assert.IsNull(waveImpactAshpaltCoverWaveConditionsCalculation.InputParameters.HydraulicBoundaryLocation); CollectionAssert.AreEqual(new ICalculation[] { pipingCalculation, grassCoverErosionInwardsCalculation, stabilityStoneCoverWaveConditionsCalculation, - grassCoverErosionOutwardsCalculation, + waveImpactAshpaltCoverWaveConditionsCalculation, + grassCoverErosionOutwardsWaveConditionsCalculation, heightStructuresCalculation }, affectedItems); } @@ -435,12 +465,18 @@ Output = new StabilityStoneCoverWaveConditionsOutput(Enumerable.Empty(), Enumerable.Empty()) }; - var emptyGrassCoverErosionOutwardsCalculation = new GrassCoverErosionOutwardsWaveConditionsCalculation(); - var grassCoverErosionOutwardsCalculation = new GrassCoverErosionOutwardsWaveConditionsCalculation + var emptyGrassCoverErosionOutwardsWaveConditionsCalculation = new GrassCoverErosionOutwardsWaveConditionsCalculation(); + var grassCoverErosionOutwardsWaveConditionsCalculation = new GrassCoverErosionOutwardsWaveConditionsCalculation { Output = new GrassCoverErosionOutwardsWaveConditionsOutput(Enumerable.Empty()) }; + var emptyWaveImpactAshpaltCoverWaveConditionsCalculation = new WaveImpactAsphaltCoverWaveConditionsCalculation(); + var waveImpactAshpaltCoverWaveConditionsCalculation = new WaveImpactAsphaltCoverWaveConditionsCalculation + { + Output = new WaveImpactAsphaltCoverWaveConditionsOutput(Enumerable.Empty()) + }; + assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(emptyPipingCalculation); assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(pipingCalculation); assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(emptyGrassCoverErosionInwardsCalculation); @@ -449,8 +485,10 @@ assessmentSection.HeightStructures.CalculationsGroup.Children.Add(heightStructuresCalculation); assessmentSection.StabilityStoneCover.WaveConditionsCalculationGroup.Children.Add(emptyStabilityStoneCoverWaveConditionsCalculation); assessmentSection.StabilityStoneCover.WaveConditionsCalculationGroup.Children.Add(stabilityStoneCoverWaveConditionsCalculation); - assessmentSection.GrassCoverErosionOutwards.WaveConditionsCalculationGroup.Children.Add(emptyGrassCoverErosionOutwardsCalculation); - assessmentSection.GrassCoverErosionOutwards.WaveConditionsCalculationGroup.Children.Add(grassCoverErosionOutwardsCalculation); + assessmentSection.GrassCoverErosionOutwards.WaveConditionsCalculationGroup.Children.Add(emptyGrassCoverErosionOutwardsWaveConditionsCalculation); + assessmentSection.GrassCoverErosionOutwards.WaveConditionsCalculationGroup.Children.Add(grassCoverErosionOutwardsWaveConditionsCalculation); + assessmentSection.WaveImpactAsphaltCover.WaveConditionsCalculationGroup.Children.Add(emptyWaveImpactAshpaltCoverWaveConditionsCalculation); + assessmentSection.WaveImpactAsphaltCover.WaveConditionsCalculationGroup.Children.Add(waveImpactAshpaltCoverWaveConditionsCalculation); // Call IEnumerable affectedItems = RingtoetsDataSynchronizationService.ClearAllCalculationOutputAndHydraulicBoundaryLocations(assessmentSection); @@ -460,13 +498,15 @@ Assert.IsNull(grassCoverErosionInwardsCalculation.Output); Assert.IsNull(heightStructuresCalculation.Output); Assert.IsNull(stabilityStoneCoverWaveConditionsCalculation.Output); - Assert.IsNull(grassCoverErosionOutwardsCalculation.Output); + Assert.IsNull(grassCoverErosionOutwardsWaveConditionsCalculation.Output); + Assert.IsNull(waveImpactAshpaltCoverWaveConditionsCalculation.Output); CollectionAssert.AreEqual(new ICalculation[] { pipingCalculation, grassCoverErosionInwardsCalculation, stabilityStoneCoverWaveConditionsCalculation, - grassCoverErosionOutwardsCalculation, + waveImpactAshpaltCoverWaveConditionsCalculation, + grassCoverErosionOutwardsWaveConditionsCalculation, heightStructuresCalculation }, affectedItems); } @@ -482,12 +522,14 @@ var emptyHeightStructuresCalculation = new HeightStructuresCalculation(); var emptyStabilityStoneCoverWaveConditionsCalculation = new StabilityStoneCoverWaveConditionsCalculation(); var emptyGrassCoverErosionOutwardsCalculation = new GrassCoverErosionOutwardsWaveConditionsCalculation(); + var emptyWaveImpactAshpaltCoverWaveConditionsCalculation = new WaveImpactAsphaltCoverWaveConditionsCalculation(); assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(emptyPipingCalculation); assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(emptyGrassCoverErosionInwardsCalculation); assessmentSection.HeightStructures.CalculationsGroup.Children.Add(emptyHeightStructuresCalculation); assessmentSection.StabilityStoneCover.WaveConditionsCalculationGroup.Children.Add(emptyStabilityStoneCoverWaveConditionsCalculation); assessmentSection.GrassCoverErosionOutwards.WaveConditionsCalculationGroup.Children.Add(emptyGrassCoverErosionOutwardsCalculation); + assessmentSection.WaveImpactAsphaltCover.WaveConditionsCalculationGroup.Children.Add(emptyWaveImpactAshpaltCoverWaveConditionsCalculation); // Call IEnumerable affectedItems = RingtoetsDataSynchronizationService.ClearAllCalculationOutputAndHydraulicBoundaryLocations(assessmentSection); Index: Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Service.Test/Ringtoets.StabilityStoneCover.Service.Test.csproj =================================================================== diff -u -ra928ee0f1a12e23c695da35485752de4e059e770 -rc96cfd7d2d167db3b0775f7d76f320c5e582ae27 --- Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Service.Test/Ringtoets.StabilityStoneCover.Service.Test.csproj (.../Ringtoets.StabilityStoneCover.Service.Test.csproj) (revision a928ee0f1a12e23c695da35485752de4e059e770) +++ Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Service.Test/Ringtoets.StabilityStoneCover.Service.Test.csproj (.../Ringtoets.StabilityStoneCover.Service.Test.csproj) (revision c96cfd7d2d167db3b0775f7d76f320c5e582ae27) @@ -53,7 +53,7 @@ Properties\GlobalAssembly.cs - + Fisheye: Tag c96cfd7d2d167db3b0775f7d76f320c5e582ae27 refers to a dead (removed) revision in file `Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Service.Test/StabilityStoneCoverDataSynchronizationService.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Service.Test/StabilityStoneCoverDataSynchronizationServiceTest.cs =================================================================== diff -u --- Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Service.Test/StabilityStoneCoverDataSynchronizationServiceTest.cs (revision 0) +++ Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Service.Test/StabilityStoneCoverDataSynchronizationServiceTest.cs (revision c96cfd7d2d167db3b0775f7d76f320c5e582ae27) @@ -0,0 +1,234 @@ +// Copyright (C) Stichting Deltares 2016. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Collections.Generic; +using System.Linq; +using NUnit.Framework; +using Ringtoets.HydraRing.Data; +using Ringtoets.Revetment.Data; +using Ringtoets.StabilityStoneCover.Data; + +namespace Ringtoets.StabilityStoneCover.Service.Test +{ + [TestFixture] + public class StabilityStoneCoverDataSynchronizationServiceTest + { + [Test] + public void ClearWaveConditionsCalculationOutput_CalculationNull_ThrowsArgumentNullException() + { + // Call + TestDelegate test = () => StabilityStoneCoverDataSynchronizationService.ClearWaveConditionsCalculationOutput(null); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("calculation", exception.ParamName); + } + + [Test] + public void ClearWaveConditionsCalculationOutput_WithCalculation_OutputNull() + { + // Setup + var calculation = new StabilityStoneCoverWaveConditionsCalculation() + { + Output = new StabilityStoneCoverWaveConditionsOutput(new[] + { + new WaveConditionsOutput(12.0, 4.3, 0.4, 49) + }, new[] + { + new WaveConditionsOutput(6.0, 3.7, 4.3, 29) + }) + }; + + // Precondition + Assert.IsNotNull(calculation.Output); + + // Call + StabilityStoneCoverDataSynchronizationService.ClearWaveConditionsCalculationOutput(calculation); + + // Assert + Assert.IsNull(calculation.Output); + } + + [Test] + public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_WithoutFailureMechanism_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => StabilityStoneCoverDataSynchronizationService.ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations(null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("failureMechanism", exception.ParamName); + } + + [Test] + public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_CalculationsWithHydraulicBoundaryLocationAndOutput_ClearsHydraulicBoundaryLocationAndCalculationsAndReturnsAffectedCalculations() + { + // Setup + var failureMechanism = new StabilityStoneCoverFailureMechanism(); + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, string.Empty, 0, 0); + + var calculation1 = new StabilityStoneCoverWaveConditionsCalculation + { + InputParameters = + { + HydraulicBoundaryLocation = hydraulicBoundaryLocation + }, + Output = new StabilityStoneCoverWaveConditionsOutput(Enumerable.Empty(), Enumerable.Empty()) + }; + + var calculation2 = new StabilityStoneCoverWaveConditionsCalculation + { + InputParameters = + { + HydraulicBoundaryLocation = hydraulicBoundaryLocation + }, + Output = new StabilityStoneCoverWaveConditionsOutput(Enumerable.Empty(), Enumerable.Empty()) + }; + + var calculation3 = new StabilityStoneCoverWaveConditionsCalculation(); + + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation1); + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation2); + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation3); + + // Call + IEnumerable affectedItems = StabilityStoneCoverDataSynchronizationService.ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations(failureMechanism); + + // Assert + foreach (StabilityStoneCoverWaveConditionsCalculation calculation in failureMechanism.WaveConditionsCalculationGroup.Children + .Cast()) + { + Assert.IsNull(calculation.InputParameters.HydraulicBoundaryLocation); + Assert.IsNull(calculation.Output); + } + CollectionAssert.AreEqual(new[] + { + calculation1, + calculation2 + }, affectedItems); + } + + [Test] + public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_CalculationsWithHydraulicBoundaryLocationNoOutput_ClearsHydraulicBoundaryLocationAndReturnsAffectedCalculations() + { + // Setup + var failureMechanism = new StabilityStoneCoverFailureMechanism(); + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, string.Empty, 0, 0); + + var calculation1 = new StabilityStoneCoverWaveConditionsCalculation + { + InputParameters = + { + HydraulicBoundaryLocation = hydraulicBoundaryLocation + } + }; + + var calculation2 = new StabilityStoneCoverWaveConditionsCalculation + { + InputParameters = + { + HydraulicBoundaryLocation = hydraulicBoundaryLocation + } + }; + + var calculation3 = new StabilityStoneCoverWaveConditionsCalculation(); + + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation1); + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation2); + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation3); + + // Call + IEnumerable affectedItems = StabilityStoneCoverDataSynchronizationService.ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations(failureMechanism); + + // Assert + foreach (StabilityStoneCoverWaveConditionsCalculation calculation in failureMechanism.WaveConditionsCalculationGroup.Children + .Cast()) + { + Assert.IsNull(calculation.InputParameters.HydraulicBoundaryLocation); + } + CollectionAssert.AreEqual(new[] + { + calculation1, + calculation2 + }, affectedItems); + } + + [Test] + public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_CalculationsWithOutputAndNoHydraulicBoundaryLocation_ClearsOutputAndReturnsAffectedCalculations() + { + // Setup + var failureMechanism = new StabilityStoneCoverFailureMechanism(); + + var calculation1 = new StabilityStoneCoverWaveConditionsCalculation + { + Output = new StabilityStoneCoverWaveConditionsOutput(Enumerable.Empty(), Enumerable.Empty()) + }; + + var calculation2 = new StabilityStoneCoverWaveConditionsCalculation + { + Output = new StabilityStoneCoverWaveConditionsOutput(Enumerable.Empty(), Enumerable.Empty()) + }; + + var calculation3 = new StabilityStoneCoverWaveConditionsCalculation(); + + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation1); + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation2); + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation3); + + // Call + IEnumerable affectedItems = StabilityStoneCoverDataSynchronizationService.ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations(failureMechanism); + + // Assert + foreach (StabilityStoneCoverWaveConditionsCalculation calculation in failureMechanism.WaveConditionsCalculationGroup.Children + .Cast()) + { + Assert.IsNull(calculation.Output); + } + CollectionAssert.AreEqual(new[] + { + calculation1, + calculation2 + }, affectedItems); + } + + [Test] + public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_CalculationWithoutOutputAndHydraulicBoundaryLocation_ReturnNoAffectedCalculations() + { + // Setup + var failureMechanism = new StabilityStoneCoverFailureMechanism(); + + var calculation1 = new StabilityStoneCoverWaveConditionsCalculation(); + var calculation2 = new StabilityStoneCoverWaveConditionsCalculation(); + var calculation3 = new StabilityStoneCoverWaveConditionsCalculation(); + + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation1); + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation2); + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation3); + + // Call + IEnumerable affectedItems = StabilityStoneCoverDataSynchronizationService.ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations(failureMechanism); + + // Assert + CollectionAssert.IsEmpty(affectedItems); + } + } +} \ No newline at end of file Index: Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Service/WaveImpactAsphaltCoverDataSynchronizationService.cs =================================================================== diff -u -r656d5126496add226d3bbdb348ef4a4354e4119e -rc96cfd7d2d167db3b0775f7d76f320c5e582ae27 --- Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Service/WaveImpactAsphaltCoverDataSynchronizationService.cs (.../WaveImpactAsphaltCoverDataSynchronizationService.cs) (revision 656d5126496add226d3bbdb348ef4a4354e4119e) +++ Ringtoets/WaveImpactAsphaltCover/src/Ringtoets.WaveImpactAsphaltCover.Service/WaveImpactAsphaltCoverDataSynchronizationService.cs (.../WaveImpactAsphaltCoverDataSynchronizationService.cs) (revision c96cfd7d2d167db3b0775f7d76f320c5e582ae27) @@ -20,6 +20,10 @@ // All rights reserved. using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using Ringtoets.HydraRing.Data; using Ringtoets.WaveImpactAsphaltCover.Data; namespace Ringtoets.WaveImpactAsphaltCover.Service @@ -45,5 +49,55 @@ calculation.Output = null; } + + /// + /// Clears the and output for all the wave conditions calculations + /// in the . + /// + /// The + /// which contains the calculations. + /// An of calculations which are affected by + /// removing data. + /// Thrown when + /// is null. + public static IEnumerable ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations( + WaveImpactAsphaltCoverFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException("failureMechanism"); + } + + Collection affectedItems = new Collection(); + + foreach (var calculation in failureMechanism.Calculations.Cast()) + { + var calculationChanged = false; + + if (calculation.HasOutput) + { + ClearWaveConditionsCalculationOutput(calculation); + calculationChanged = true; + } + + if (calculation.InputParameters.HydraulicBoundaryLocation != null) + { + ClearHydraulicBoundaryLocation(calculation); + calculationChanged = true; + } + + if (calculationChanged) + { + affectedItems.Add(calculation); + } + } + + return affectedItems; + } + + private static void ClearHydraulicBoundaryLocation(WaveImpactAsphaltCoverWaveConditionsCalculation calculation) + { + calculation.InputParameters.HydraulicBoundaryLocation = null; + } } } \ No newline at end of file Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Service.Test/Ringtoets.WaveImpactAsphaltCover.Service.Test.csproj =================================================================== diff -u -r656d5126496add226d3bbdb348ef4a4354e4119e -rc96cfd7d2d167db3b0775f7d76f320c5e582ae27 --- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Service.Test/Ringtoets.WaveImpactAsphaltCover.Service.Test.csproj (.../Ringtoets.WaveImpactAsphaltCover.Service.Test.csproj) (revision 656d5126496add226d3bbdb348ef4a4354e4119e) +++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Service.Test/Ringtoets.WaveImpactAsphaltCover.Service.Test.csproj (.../Ringtoets.WaveImpactAsphaltCover.Service.Test.csproj) (revision c96cfd7d2d167db3b0775f7d76f320c5e582ae27) @@ -75,6 +75,11 @@ {888D4097-8BC2-4703-9FB1-8744C94D525E} Ringtoets.HydraRing.Calculation + + {70F8CC9C-5BC8-4FB2-B201-EAE7FA8088C2} + Ringtoets.HydraRing.Data + True + {87c2c553-c0bc-40bf-b1ea-b83bff357f27} Ringtoets.Revetment.Data Index: Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Service.Test/WaveImpactAsphaltCoverDataSynchronizationServiceTest.cs =================================================================== diff -u -r656d5126496add226d3bbdb348ef4a4354e4119e -rc96cfd7d2d167db3b0775f7d76f320c5e582ae27 --- Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Service.Test/WaveImpactAsphaltCoverDataSynchronizationServiceTest.cs (.../WaveImpactAsphaltCoverDataSynchronizationServiceTest.cs) (revision 656d5126496add226d3bbdb348ef4a4354e4119e) +++ Ringtoets/WaveImpactAsphaltCover/test/Ringtoets.WaveImpactAsphaltCover.Service.Test/WaveImpactAsphaltCoverDataSynchronizationServiceTest.cs (.../WaveImpactAsphaltCoverDataSynchronizationServiceTest.cs) (revision c96cfd7d2d167db3b0775f7d76f320c5e582ae27) @@ -20,8 +20,10 @@ // All rights reserved. using System; +using System.Collections.Generic; using System.Linq; using NUnit.Framework; +using Ringtoets.HydraRing.Data; using Ringtoets.Revetment.Data; using Ringtoets.WaveImpactAsphaltCover.Data; @@ -59,5 +61,168 @@ // Assert Assert.IsNull(calculation.Output); } + + [Test] + public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_WithoutFailureMechanism_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => WaveImpactAsphaltCoverDataSynchronizationService.ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations(null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("failureMechanism", exception.ParamName); + } + + [Test] + public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_CalculationsWithHydraulicBoundaryLocationAndOutput_ClearsHydraulicBoundaryLocationAndCalculationsAndReturnsAffectedCalculations() + { + // Setup + var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, string.Empty, 0, 0); + + var calculation1 = new WaveImpactAsphaltCoverWaveConditionsCalculation + { + InputParameters = + { + HydraulicBoundaryLocation = hydraulicBoundaryLocation + }, + Output = new WaveImpactAsphaltCoverWaveConditionsOutput(Enumerable.Empty()) + }; + + var calculation2 = new WaveImpactAsphaltCoverWaveConditionsCalculation + { + InputParameters = + { + HydraulicBoundaryLocation = hydraulicBoundaryLocation + }, + Output = new WaveImpactAsphaltCoverWaveConditionsOutput(Enumerable.Empty()) + }; + + var calculation3 = new WaveImpactAsphaltCoverWaveConditionsCalculation(); + + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation1); + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation2); + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation3); + + // Call + IEnumerable affectedItems = WaveImpactAsphaltCoverDataSynchronizationService.ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations(failureMechanism); + + // Assert + foreach (WaveImpactAsphaltCoverWaveConditionsCalculation calculation in failureMechanism.WaveConditionsCalculationGroup.Children + .Cast()) + { + Assert.IsNull(calculation.InputParameters.HydraulicBoundaryLocation); + Assert.IsNull(calculation.Output); + } + CollectionAssert.AreEqual(new[] + { + calculation1, + calculation2 + }, affectedItems); + } + + [Test] + public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_CalculationsWithHydraulicBoundaryLocationNoOutput_ClearsHydraulicBoundaryLocationAndReturnsAffectedCalculations() + { + // Setup + var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, string.Empty, 0, 0); + + var calculation1 = new WaveImpactAsphaltCoverWaveConditionsCalculation + { + InputParameters = + { + HydraulicBoundaryLocation = hydraulicBoundaryLocation + } + }; + + var calculation2 = new WaveImpactAsphaltCoverWaveConditionsCalculation + { + InputParameters = + { + HydraulicBoundaryLocation = hydraulicBoundaryLocation + } + }; + + var calculation3 = new WaveImpactAsphaltCoverWaveConditionsCalculation(); + + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation1); + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation2); + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation3); + + // Call + IEnumerable affectedItems = WaveImpactAsphaltCoverDataSynchronizationService.ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations(failureMechanism); + + // Assert + foreach (WaveImpactAsphaltCoverWaveConditionsCalculation calculation in failureMechanism.WaveConditionsCalculationGroup.Children + .Cast()) + { + Assert.IsNull(calculation.InputParameters.HydraulicBoundaryLocation); + } + CollectionAssert.AreEqual(new[] + { + calculation1, + calculation2 + }, affectedItems); + } + + [Test] + public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_CalculationsWithOutputAndNoHydraulicBoundaryLocation_ClearsOutputAndReturnsAffectedCalculations() + { + // Setup + var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); + + var calculation1 = new WaveImpactAsphaltCoverWaveConditionsCalculation + { + Output = new WaveImpactAsphaltCoverWaveConditionsOutput(Enumerable.Empty()) + }; + + var calculation2 = new WaveImpactAsphaltCoverWaveConditionsCalculation + { + Output = new WaveImpactAsphaltCoverWaveConditionsOutput(Enumerable.Empty()) + }; + + var calculation3 = new WaveImpactAsphaltCoverWaveConditionsCalculation(); + + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation1); + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation2); + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation3); + + // Call + IEnumerable affectedItems = WaveImpactAsphaltCoverDataSynchronizationService.ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations(failureMechanism); + + // Assert + foreach (WaveImpactAsphaltCoverWaveConditionsCalculation calculation in failureMechanism.WaveConditionsCalculationGroup.Children + .Cast()) + { + Assert.IsNull(calculation.Output); + } + CollectionAssert.AreEqual(new[] + { + calculation1, + calculation2 + }, affectedItems); + } + + [Test] + public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_CalculationWithoutOutputAndHydraulicBoundaryLocation_ReturnNoAffectedCalculations() + { + // Setup + var failureMechanism = new WaveImpactAsphaltCoverFailureMechanism(); + + var calculation1 = new WaveImpactAsphaltCoverWaveConditionsCalculation(); + var calculation2 = new WaveImpactAsphaltCoverWaveConditionsCalculation(); + var calculation3 = new WaveImpactAsphaltCoverWaveConditionsCalculation(); + + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation1); + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation2); + failureMechanism.WaveConditionsCalculationGroup.Children.Add(calculation3); + + // Call + IEnumerable affectedItems = WaveImpactAsphaltCoverDataSynchronizationService.ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations(failureMechanism); + + // Assert + CollectionAssert.IsEmpty(affectedItems); + } } } \ No newline at end of file