Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Service.Test/GrassCoverErosionOutwardsDataSynchronizationServiceTest.cs =================================================================== diff -u -rac8798cf0a66cf04df1294d4fd08e0b1915a5b91 -rcd6f013c9e443af060f847d4b6b018a40948e329 --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Service.Test/GrassCoverErosionOutwardsDataSynchronizationServiceTest.cs (.../GrassCoverErosionOutwardsDataSynchronizationServiceTest.cs) (revision ac8798cf0a66cf04df1294d4fd08e0b1915a5b91) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Service.Test/GrassCoverErosionOutwardsDataSynchronizationServiceTest.cs (.../GrassCoverErosionOutwardsDataSynchronizationServiceTest.cs) (revision cd6f013c9e443af060f847d4b6b018a40948e329) @@ -26,8 +26,10 @@ using NUnit.Framework; using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.Hydraulics; +using Ringtoets.Common.Data.TestUtil; using Ringtoets.Common.Service; using Ringtoets.GrassCoverErosionOutwards.Data; +using Ringtoets.GrassCoverErosionOutwards.Util.TestUtil; using Ringtoets.Revetment.Data; namespace Ringtoets.GrassCoverErosionOutwards.Service.Test @@ -202,6 +204,55 @@ CollectionAssert.AreEquivalent(expectedRemovedObjects, results.RemovedObjects); } + [Test] + public void ClearHydraulicBoundaryLocationCalculationOutputs_FailureMechanismNull_ThrowsArgumentNullException() + { + // Call + TestDelegate call = () => GrassCoverErosionOutwardsDataSynchronizationService.ClearHydraulicBoundaryLocationCalculationOutputs(null); + + // Assert + var exception = Assert.Throws(call); + Assert.AreEqual("failureMechanism", exception.ParamName); + } + + [Test] + public void ClearHydraulicBoundaryLocationCalculationOutputs_FailureMechanismWithOutputs_OutputClearedAndAffectedItemsReturned() + { + // Setup + var hydraulicBoundaryLocations = new[] + { + new TestHydraulicBoundaryLocation(), + new TestHydraulicBoundaryLocation() + }; + + var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); + failureMechanism.SetHydraulicBoundaryLocationCalculations(hydraulicBoundaryLocations); + + failureMechanism.WaterLevelCalculationsForMechanismSpecificFactorizedSignalingNorm.First().Output = new TestHydraulicBoundaryLocationOutput(); + failureMechanism.WaterLevelCalculationsForMechanismSpecificSignalingNorm.First().Output = new TestHydraulicBoundaryLocationOutput(); + failureMechanism.WaterLevelCalculationsForMechanismSpecificLowerLimitNorm.First().Output = new TestHydraulicBoundaryLocationOutput(); + failureMechanism.WaveHeightCalculationsForMechanismSpecificFactorizedSignalingNorm.First().Output = new TestHydraulicBoundaryLocationOutput(); + failureMechanism.WaveHeightCalculationsForMechanismSpecificSignalingNorm.First().Output = new TestHydraulicBoundaryLocationOutput(); + failureMechanism.WaveHeightCalculationsForMechanismSpecificLowerLimitNorm.First().Output = new TestHydraulicBoundaryLocationOutput(); + + IEnumerable expectedAffectedItems = + GrassCoverErosionOutwardsHydraulicBoundaryLocationsTestHelper.GetAllHydraulicBoundaryLocationsCalculationsWithOutput(failureMechanism) + .ToArray(); + + // Call + IEnumerable affectedItems = GrassCoverErosionOutwardsDataSynchronizationService.ClearHydraulicBoundaryLocationCalculationOutputs(failureMechanism); + + // Assert + CollectionAssert.AreEquivalent(expectedAffectedItems, affectedItems); + + Assert.IsTrue(failureMechanism.WaterLevelCalculationsForMechanismSpecificFactorizedSignalingNorm.All(calc => !calc.HasOutput)); + Assert.IsTrue(failureMechanism.WaterLevelCalculationsForMechanismSpecificSignalingNorm.All(calc => !calc.HasOutput)); + Assert.IsTrue(failureMechanism.WaterLevelCalculationsForMechanismSpecificLowerLimitNorm.All(calc => !calc.HasOutput)); + Assert.IsTrue(failureMechanism.WaveHeightCalculationsForMechanismSpecificFactorizedSignalingNorm.All(calc => !calc.HasOutput)); + Assert.IsTrue(failureMechanism.WaveHeightCalculationsForMechanismSpecificSignalingNorm.All(calc => !calc.HasOutput)); + Assert.IsTrue(failureMechanism.WaveHeightCalculationsForMechanismSpecificLowerLimitNorm.All(calc => !calc.HasOutput)); + } + private static GrassCoverErosionOutwardsFailureMechanism CreateFullyConfiguredFailureMechanism() { var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism();