Index: Riskeer/Integration/src/Riskeer.Integration.Data/AssessmentSection.cs =================================================================== diff -u -r8339953df3276b6c7b4a3d9f5a278e4c19e85be3 -r7fc10264f0bb04fb75b3879b81dcb5ab8e7287f1 --- Riskeer/Integration/src/Riskeer.Integration.Data/AssessmentSection.cs (.../AssessmentSection.cs) (revision 8339953df3276b6c7b4a3d9f5a278e4c19e85be3) +++ Riskeer/Integration/src/Riskeer.Integration.Data/AssessmentSection.cs (.../AssessmentSection.cs) (revision 7fc10264f0bb04fb75b3879b81dcb5ab8e7287f1) @@ -227,8 +227,6 @@ throw new ArgumentNullException(nameof(hydraulicBoundaryLocations)); } - ClearHydraulicBoundaryLocationCalculations(); - foreach (HydraulicBoundaryLocation hydraulicBoundaryLocation in hydraulicBoundaryLocations) { AddHydraulicBoundaryLocationCalculations(hydraulicBoundaryLocation); Index: Riskeer/Integration/src/Riskeer.Integration.Plugin/Handlers/HydraulicBoundaryDataUpdateHandler.cs =================================================================== diff -u -r70aabefc8bca8eb959a0909958d4d0465aaed144 -r7fc10264f0bb04fb75b3879b81dcb5ab8e7287f1 --- Riskeer/Integration/src/Riskeer.Integration.Plugin/Handlers/HydraulicBoundaryDataUpdateHandler.cs (.../HydraulicBoundaryDataUpdateHandler.cs) (revision 70aabefc8bca8eb959a0909958d4d0465aaed144) +++ Riskeer/Integration/src/Riskeer.Integration.Plugin/Handlers/HydraulicBoundaryDataUpdateHandler.cs (.../HydraulicBoundaryDataUpdateHandler.cs) (revision 7fc10264f0bb04fb75b3879b81dcb5ab8e7287f1) @@ -116,7 +116,7 @@ hydraulicBoundaryData.Locations.AddRange(newHydraulicBoundaryLocations); - assessmentSection.SetHydraulicBoundaryLocationCalculations(hydraulicBoundaryData.Locations); + assessmentSection.SetHydraulicBoundaryLocationCalculations(newHydraulicBoundaryDatabase.Locations); duneLocationsReplacementHandler.Replace(hydraulicBoundaryData.Locations); var changedObjects = new List(); Index: Riskeer/Integration/test/Riskeer.Integration.Data.Test/AssessmentSectionTest.cs =================================================================== diff -u -recbba2f636e82f8d94ee7deea09730e39190d2bb -r7fc10264f0bb04fb75b3879b81dcb5ab8e7287f1 --- Riskeer/Integration/test/Riskeer.Integration.Data.Test/AssessmentSectionTest.cs (.../AssessmentSectionTest.cs) (revision ecbba2f636e82f8d94ee7deea09730e39190d2bb) +++ Riskeer/Integration/test/Riskeer.Integration.Data.Test/AssessmentSectionTest.cs (.../AssessmentSectionTest.cs) (revision 7fc10264f0bb04fb75b3879b81dcb5ab8e7287f1) @@ -273,40 +273,6 @@ } [Test] - public void SetHydraulicBoundaryLocationCalculations_Always_PreviousCalculationsCleared() - { - // Setup - var random = new Random(21); - var assessmentSection = new AssessmentSection(random.NextEnumValue()); - - var waterLevelCalculationsForTargetProbability = new HydraulicBoundaryLocationCalculationsForTargetProbability(0.1); - assessmentSection.WaterLevelCalculationsForUserDefinedTargetProbabilities.Add(waterLevelCalculationsForTargetProbability); - - var waveHeightCalculationsForTargetProbability = new HydraulicBoundaryLocationCalculationsForTargetProbability(0.01); - assessmentSection.WaveHeightCalculationsForUserDefinedTargetProbabilities.Add(waveHeightCalculationsForTargetProbability); - - assessmentSection.SetHydraulicBoundaryLocationCalculations(new HydraulicBoundaryLocation[] - { - new TestHydraulicBoundaryLocation() - }); - - // Precondition - CollectionAssert.IsNotEmpty(assessmentSection.WaterLevelCalculationsForSignalFloodingProbability); - CollectionAssert.IsNotEmpty(assessmentSection.WaterLevelCalculationsForMaximumAllowableFloodingProbability); - CollectionAssert.IsNotEmpty(waterLevelCalculationsForTargetProbability.HydraulicBoundaryLocationCalculations); - CollectionAssert.IsNotEmpty(waveHeightCalculationsForTargetProbability.HydraulicBoundaryLocationCalculations); - - // Call - assessmentSection.SetHydraulicBoundaryLocationCalculations(Enumerable.Empty()); - - // Assert - CollectionAssert.IsEmpty(assessmentSection.WaterLevelCalculationsForSignalFloodingProbability); - CollectionAssert.IsEmpty(assessmentSection.WaterLevelCalculationsForMaximumAllowableFloodingProbability); - CollectionAssert.IsEmpty(waterLevelCalculationsForTargetProbability.HydraulicBoundaryLocationCalculations); - CollectionAssert.IsEmpty(waveHeightCalculationsForTargetProbability.HydraulicBoundaryLocationCalculations); - } - - [Test] public void SetHydraulicBoundaryLocationCalculations_MultipleHydraulicBoundaryLocations_SetsExpectedCalculations() { // Setup @@ -333,6 +299,43 @@ AssertDefaultHydraulicBoundaryLocationCalculations(assessmentSection, 1, hydraulicBoundaryLocation2); } + [Test] + public void GivenAssessmentSectionWithHydraulicBoundaryLocationCalculations_WhenSetHydraulicBoundaryLocationCalculations_ThenCalculationsAdded() + { + // Given + var random = new Random(21); + var assessmentSection = new AssessmentSection(random.NextEnumValue()); + + var waterLevelCalculationsForTargetProbability = new HydraulicBoundaryLocationCalculationsForTargetProbability(0.1); + assessmentSection.WaterLevelCalculationsForUserDefinedTargetProbabilities.Add(waterLevelCalculationsForTargetProbability); + + var waveHeightCalculationsForTargetProbability = new HydraulicBoundaryLocationCalculationsForTargetProbability(0.01); + assessmentSection.WaveHeightCalculationsForUserDefinedTargetProbabilities.Add(waveHeightCalculationsForTargetProbability); + + assessmentSection.SetHydraulicBoundaryLocationCalculations(new HydraulicBoundaryLocation[] + { + new TestHydraulicBoundaryLocation() + }); + + // Precondition + Assert.AreEqual(1, assessmentSection.WaterLevelCalculationsForSignalFloodingProbability.Count()); + Assert.AreEqual(1, assessmentSection.WaterLevelCalculationsForMaximumAllowableFloodingProbability.Count()); + Assert.AreEqual(1, waterLevelCalculationsForTargetProbability.HydraulicBoundaryLocationCalculations.Count); + Assert.AreEqual(1, waveHeightCalculationsForTargetProbability.HydraulicBoundaryLocationCalculations.Count); + + // When + assessmentSection.SetHydraulicBoundaryLocationCalculations(new HydraulicBoundaryLocation[] + { + new TestHydraulicBoundaryLocation() + }); + + // Then + Assert.AreEqual(2, assessmentSection.WaterLevelCalculationsForSignalFloodingProbability.Count()); + Assert.AreEqual(2, assessmentSection.WaterLevelCalculationsForMaximumAllowableFloodingProbability.Count()); + Assert.AreEqual(2, waterLevelCalculationsForTargetProbability.HydraulicBoundaryLocationCalculations.Count); + Assert.AreEqual(2, waveHeightCalculationsForTargetProbability.HydraulicBoundaryLocationCalculations.Count); + } + private static IEnumerable GetFailureMechanismInAssemblyStates() { yield return new TestCaseData(AssessmentSectionComposition.Dike, new[]