Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Data/HydraulicBoundaryDatabase.cs =================================================================== diff -u -rb616b18965853b4dee437f1fc5bf341be72a6057 -r2dcffedf1540df6d33d778b9265b55b5dea2d2a9 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Data/HydraulicBoundaryDatabase.cs (.../HydraulicBoundaryDatabase.cs) (revision b616b18965853b4dee437f1fc5bf341be72a6057) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Data/HydraulicBoundaryDatabase.cs (.../HydraulicBoundaryDatabase.cs) (revision 2dcffedf1540df6d33d778b9265b55b5dea2d2a9) @@ -52,13 +52,5 @@ /// Gets the hydraulic boundary locations. /// public List Locations { get; private set; } - - /// - /// Clears all the locations from the . - /// - public void ClearLocations() - { - Locations.Clear(); - } } } \ No newline at end of file Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Data.Test/HydraulicBoundaryDatabaseTest.cs =================================================================== diff -u -r8293556a04e3650c9978df7a50f8f8ad0d792ed8 -r2dcffedf1540df6d33d778b9265b55b5dea2d2a9 --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Data.Test/HydraulicBoundaryDatabaseTest.cs (.../HydraulicBoundaryDatabaseTest.cs) (revision 8293556a04e3650c9978df7a50f8f8ad0d792ed8) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Data.Test/HydraulicBoundaryDatabaseTest.cs (.../HydraulicBoundaryDatabaseTest.cs) (revision 2dcffedf1540df6d33d778b9265b55b5dea2d2a9) @@ -41,23 +41,5 @@ Assert.IsInstanceOf(hydraulicBoundaryDatabase); CollectionAssert.IsEmpty(hydraulicBoundaryDatabase.Locations); } - - [Test] - public void ClearLocations_Always_EmtpyLocationCollection() - { - // Setup - HydraulicBoundaryDatabase hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); - var location = hydraulicBoundaryDatabase.Locations; - location.Add(new HydraulicBoundaryLocation(1, "test", 1.0, 2.0)); - - // Precondition - CollectionAssert.IsNotEmpty(location); - - // Call - hydraulicBoundaryDatabase.ClearLocations(); - - // Assert - CollectionAssert.IsEmpty(location); - } } } \ No newline at end of file Index: Ringtoets/Integration/src/Ringtoets.Integration.Data/AssessmentSection.cs =================================================================== diff -u -re05b8947a4f5a41c2cb8b3f5460daf20ab77b2c8 -r2dcffedf1540df6d33d778b9265b55b5dea2d2a9 --- Ringtoets/Integration/src/Ringtoets.Integration.Data/AssessmentSection.cs (.../AssessmentSection.cs) (revision e05b8947a4f5a41c2cb8b3f5460daf20ab77b2c8) +++ Ringtoets/Integration/src/Ringtoets.Integration.Data/AssessmentSection.cs (.../AssessmentSection.cs) (revision 2dcffedf1540df6d33d778b9265b55b5dea2d2a9) @@ -44,6 +44,7 @@ public sealed class AssessmentSection : Observable, IAssessmentSection { private ReferenceLine referenceLine; + private HydraulicBoundaryDatabase hydraulicBoundaryDatabase; /// /// Initializes a new instance of the class. @@ -191,7 +192,21 @@ public FailureMechanismContribution FailureMechanismContribution { get; private set; } - public HydraulicBoundaryDatabase HydraulicBoundaryDatabase { get; set; } + public HydraulicBoundaryDatabase HydraulicBoundaryDatabase + { + get + { + return hydraulicBoundaryDatabase; + } + set + { + hydraulicBoundaryDatabase = value; + GrassCoverErosionOutwards.SetGrassCoverErosionOutwardsHydraulicBoundaryLocations( + hydraulicBoundaryDatabase != null ? + hydraulicBoundaryDatabase.Locations : + null); + } + } public long StorageId { get; set; } Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/AssessmentSectionTest.cs =================================================================== diff -u -rfcc734ebbc1e5c6c02ae2dae2a184fdcb9aa4d1b -r2dcffedf1540df6d33d778b9265b55b5dea2d2a9 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/AssessmentSectionTest.cs (.../AssessmentSectionTest.cs) (revision fcc734ebbc1e5c6c02ae2dae2a184fdcb9aa4d1b) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/AssessmentSectionTest.cs (.../AssessmentSectionTest.cs) (revision 2dcffedf1540df6d33d778b9265b55b5dea2d2a9) @@ -28,6 +28,7 @@ using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Contribution; using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.HydraRing.Data; using RingtoetsIntegrationResources = Ringtoets.Integration.Data.Properties.Resources; namespace Ringtoets.Integration.Data.Test @@ -324,6 +325,96 @@ Assert.AreEqual(double.NaN, assessmentSection.PipingFailureMechanism.PipingProbabilityAssessmentInput.SectionLength); } + [Test] + public void HydraulicBoundaryDatabase_SetNewValue_GetNewValue() + { + // Setup + var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); + + var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); + + // Call + assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase; + + // Assert + Assert.AreSame(hydraulicBoundaryDatabase, assessmentSection.HydraulicBoundaryDatabase); + } + + [Test] + public void HydraulicBoundaryDatabase_HydraulicBoundaryDatabaseWithLocations_GrassCoverErosionOutwardsHydraulicBoundaryLocationsSet() + { + // Setup + var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "", 0, 0); + var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + hydraulicBoundaryLocation + } + }; + + // Call + assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase; + + // Assert + Assert.AreEqual(1, assessmentSection.GrassCoverErosionOutwards.GrassCoverErosionOutwardsHydraulicBoundaryLocations.Count); + + var grassCoverErosionOutwardsLocation = assessmentSection.GrassCoverErosionOutwards.GrassCoverErosionOutwardsHydraulicBoundaryLocations.First(); + Assert.AreSame(hydraulicBoundaryLocation, grassCoverErosionOutwardsLocation.HydraulicBoundaryLocation); + } + + [Test] + public void HydraulicBoundaryDatabase_HydraulicBoundaryDatabaseWithoutLocations_GrassCoverErosionOutwardsHydraulicBoundaryLocationsEmpty() + { + // Setup + var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); + var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "", 0, 0) + } + }; + assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase; + + // Precondition + Assert.AreEqual(1, assessmentSection.GrassCoverErosionOutwards.GrassCoverErosionOutwardsHydraulicBoundaryLocations.Count); + + var emptyHydraulicBoundaryDatabase = new HydraulicBoundaryDatabase(); + + // Call + assessmentSection.HydraulicBoundaryDatabase = emptyHydraulicBoundaryDatabase; + + // Assert + Assert.AreSame(emptyHydraulicBoundaryDatabase, assessmentSection.HydraulicBoundaryDatabase); + CollectionAssert.IsEmpty(assessmentSection.GrassCoverErosionOutwards.GrassCoverErosionOutwardsHydraulicBoundaryLocations); + } + + [Test] + public void HydraulicBoundaryDatabase_HydraulicBoundaryDatabaseNull_GrassCoverErosionOutwardsHydraulicBoundaryLocationsEmpty() + { + // Setup + var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); + var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase + { + Locations = + { + new HydraulicBoundaryLocation(1, "", 0, 0) + } + }; + assessmentSection.HydraulicBoundaryDatabase = hydraulicBoundaryDatabase; + + // Precondition + Assert.AreEqual(1, assessmentSection.GrassCoverErosionOutwards.GrassCoverErosionOutwardsHydraulicBoundaryLocations.Count); + + // Call + assessmentSection.HydraulicBoundaryDatabase = null; + + // Assert + CollectionAssert.IsEmpty(assessmentSection.GrassCoverErosionOutwards.GrassCoverErosionOutwardsHydraulicBoundaryLocations); + } + private IFailureMechanism[] GetExpectedContributingFailureMechanisms(AssessmentSection section) { return new IFailureMechanism[] Index: Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/Ringtoets.Integration.Data.Test.csproj =================================================================== diff -u -re05b8947a4f5a41c2cb8b3f5460daf20ab77b2c8 -r2dcffedf1540df6d33d778b9265b55b5dea2d2a9 --- Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/Ringtoets.Integration.Data.Test.csproj (.../Ringtoets.Integration.Data.Test.csproj) (revision e05b8947a4f5a41c2cb8b3f5460daf20ab77b2c8) +++ Ringtoets/Integration/test/Ringtoets.Integration.Data.Test/Ringtoets.Integration.Data.Test.csproj (.../Ringtoets.Integration.Data.Test.csproj) (revision 2dcffedf1540df6d33d778b9265b55b5dea2d2a9) @@ -107,6 +107,10 @@ {90de728e-48ef-4665-ab38-3d88e41d9f4d} Ringtoets.GrassCoverErosionInwards.Data + + {70F8CC9C-5BC8-4FB2-B201-EAE7FA8088C2} + Ringtoets.HydraRing.Data + {ce994cc9-6f6a-48ac-b4be-02c30a21f4db} Ringtoets.Piping.Data