Index: Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Data/GrassCoverErosionOutwardsFailureMechanism.cs =================================================================== diff -u -r1f58fe3574c5bad0bee42c6e02f679a718335ab2 -r867a372d86ee5c12205fe2cbebb94f11044b1a91 --- Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Data/GrassCoverErosionOutwardsFailureMechanism.cs (.../GrassCoverErosionOutwardsFailureMechanism.cs) (revision 1f58fe3574c5bad0bee42c6e02f679a718335ab2) +++ Ringtoets/GrassCoverErosionOutwards/src/Ringtoets.GrassCoverErosionOutwards.Data/GrassCoverErosionOutwardsFailureMechanism.cs (.../GrassCoverErosionOutwardsFailureMechanism.cs) (revision 867a372d86ee5c12205fe2cbebb94f11044b1a91) @@ -23,6 +23,7 @@ using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.GrassCoverErosionOutwards.Data.Properties; +using Ringtoets.HydraRing.Data; using RingtoetsCommonDataResources = Ringtoets.Common.Data.Properties.Resources; namespace Ringtoets.GrassCoverErosionOutwards.Data @@ -31,8 +32,8 @@ /// Model containing input and output needed to perform different levels of the /// Grass Cover Erosion Outwards failure mechanism. /// - public class GrassCoverErosionOutwardsFailureMechanism : FailureMechanismBase, - IHasSectionResults + public class GrassCoverErosionOutwardsFailureMechanism : FailureMechanismBase, + IHasSectionResults { private readonly IList sectionResults; @@ -45,22 +46,46 @@ sectionResults = new List(); GeneralInput = new GeneralGrassCoverErosionOutwardsInput(); HydraulicBoundariesCalculationGroup = new CalculationGroup(RingtoetsCommonDataResources.FailureMechanism_Calculations_DisplayName, false); + GrassCoverErosionOutwardsHydraulicBoundaryLocations = new List(); } + public override IEnumerable Calculations + { + get + { + yield break; + } + } + /// /// Gets the general grass cover erosion outwards calculation input parameters that apply to each calculation. /// public GeneralGrassCoverErosionOutwardsInput GeneralInput { get; private set; } - public override IEnumerable Calculations + /// + /// Sets based upon the . + /// + /// An of . + public void SetGrassCoverErosionOutwardsHydraulicBoundaryLocations(IEnumerable hydraulicBoundaryLocations) { - get + GrassCoverErosionOutwardsHydraulicBoundaryLocations.Clear(); + if (hydraulicBoundaryLocations == null) { - yield break; + return; } + + foreach (var hydraulicBoundaryLocation in hydraulicBoundaryLocations) + { + GrassCoverErosionOutwardsHydraulicBoundaryLocations.Add(new GrassCoverErosionOutwardsHydraulicBoundaryLocation(hydraulicBoundaryLocation)); + } } /// + /// Gets an of . + /// + public IList GrassCoverErosionOutwardsHydraulicBoundaryLocations { get; private set; } + + /// /// Gets the container of all hydraulic boundary calculations. /// public CalculationGroup HydraulicBoundariesCalculationGroup { get; private set; } @@ -76,7 +101,6 @@ public override void AddSection(FailureMechanismSection section) { base.AddSection(section); - sectionResults.Add(new GrassCoverErosionOutwardsFailureMechanismSectionResult(section)); } Index: Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Data.Test/GrassCoverErosionOutwardsFailureMechanismTest.cs =================================================================== diff -u -r1f58fe3574c5bad0bee42c6e02f679a718335ab2 -r867a372d86ee5c12205fe2cbebb94f11044b1a91 --- Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Data.Test/GrassCoverErosionOutwardsFailureMechanismTest.cs (.../GrassCoverErosionOutwardsFailureMechanismTest.cs) (revision 1f58fe3574c5bad0bee42c6e02f679a718335ab2) +++ Ringtoets/GrassCoverErosionOutwards/test/Ringtoets.GrassCoverErosionOutwards.Data.Test/GrassCoverErosionOutwardsFailureMechanismTest.cs (.../GrassCoverErosionOutwardsFailureMechanismTest.cs) (revision 867a372d86ee5c12205fe2cbebb94f11044b1a91) @@ -23,6 +23,7 @@ using Core.Common.Base.Geometry; using NUnit.Framework; using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.HydraRing.Data; namespace Ringtoets.GrassCoverErosionOutwards.Data.Test { @@ -44,6 +45,7 @@ Assert.AreEqual("Berekeningen", failureMechanism.HydraulicBoundariesCalculationGroup.Name); Assert.IsFalse(failureMechanism.HydraulicBoundariesCalculationGroup.IsNameEditable); CollectionAssert.IsEmpty(failureMechanism.HydraulicBoundariesCalculationGroup.Children); + CollectionAssert.IsEmpty(failureMechanism.GrassCoverErosionOutwardsHydraulicBoundaryLocations); } [Test] @@ -80,5 +82,41 @@ CollectionAssert.IsEmpty(failureMechanism.Sections); CollectionAssert.IsEmpty(failureMechanism.SectionResults); } + + [Test] + public void SetGrassCoverErosionOutwardsHydraulicBoundaryLocations_ValidHydraulicBoundaryLocations_SetsGrassCoverErosionOutwardsHydraulicBoundaryLocations() + { + // Setup + var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1,"",2,3); + + // Call + failureMechanism.SetGrassCoverErosionOutwardsHydraulicBoundaryLocations(new[] { hydraulicBoundaryLocation }); + + // Assert + Assert.AreEqual(1, failureMechanism.GrassCoverErosionOutwardsHydraulicBoundaryLocations.Count); + var firstGrassCoverErosionOutwardsHydraulicBoundaryLocation = failureMechanism.GrassCoverErosionOutwardsHydraulicBoundaryLocations.First(); + Assert.AreSame(hydraulicBoundaryLocation, firstGrassCoverErosionOutwardsHydraulicBoundaryLocation.HydraulicBoundaryLocation); + } + + [Test] + public void SetGrassCoverErosionOutwardsHydraulicBoundaryLocations_HydraulicBoundaryLocationsNull_ClearsGrassCoverErosionOutwardsHydraulicBoundaryLocations() + { + // Setup + var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism(); + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1,"",2,3); + failureMechanism.SetGrassCoverErosionOutwardsHydraulicBoundaryLocations(new[] { hydraulicBoundaryLocation }); + + // Precondition + Assert.AreEqual(1, failureMechanism.GrassCoverErosionOutwardsHydraulicBoundaryLocations.Count); + var firstGrassCoverErosionOutwardsHydraulicBoundaryLocation = failureMechanism.GrassCoverErosionOutwardsHydraulicBoundaryLocations.First(); + Assert.AreSame(hydraulicBoundaryLocation, firstGrassCoverErosionOutwardsHydraulicBoundaryLocation.HydraulicBoundaryLocation); + + // Call + failureMechanism.SetGrassCoverErosionOutwardsHydraulicBoundaryLocations(null); + + // Assert + CollectionAssert.IsEmpty(failureMechanism.GrassCoverErosionOutwardsHydraulicBoundaryLocations); + } } } \ No newline at end of file