Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Ringtoets.Integration.Forms.csproj
===================================================================
diff -u -r37f9e2aae011fa8e80cf2e8f9de409cd6a25574a -r404fc8eb6e1ff688c90e2d45f735793a538c5c85
--- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Ringtoets.Integration.Forms.csproj (.../Ringtoets.Integration.Forms.csproj) (revision 37f9e2aae011fa8e80cf2e8f9de409cd6a25574a)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Ringtoets.Integration.Forms.csproj (.../Ringtoets.Integration.Forms.csproj) (revision 404fc8eb6e1ff688c90e2d45f735793a538c5c85)
@@ -228,6 +228,11 @@
Ringtoets.GrassCoverErosionInwards.Data
False
+
+ {E7225477-577F-4A17-B7EC-6721158E1543}
+ Ringtoets.GrassCoverErosionOutwards.Data
+ False
+
{1C0017D8-35B5-4CA0-8FC7-A83F46DBDC99}
Ringtoets.HeightStructures.Data
Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.cs
===================================================================
diff -u -rebf9ee4894ed003e5756d9c56be1489d54e57695 -r404fc8eb6e1ff688c90e2d45f735793a538c5c85
--- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.cs (.../FailureMechanismContributionView.cs) (revision ebf9ee4894ed003e5756d9c56be1489d54e57695)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.cs (.../FailureMechanismContributionView.cs) (revision 404fc8eb6e1ff688c90e2d45f735793a538c5c85)
@@ -33,6 +33,7 @@
using Ringtoets.Common.Data.Calculation;
using Ringtoets.Common.Data.Contribution;
using Ringtoets.Common.Data.FailureMechanism;
+using Ringtoets.GrassCoverErosionOutwards.Data;
using Ringtoets.Integration.Service;
using CoreCommonBaseResources = Core.Common.Base.Properties.Resources;
using CommonGuiResources = Core.Common.Gui.Properties.Resources;
@@ -298,9 +299,14 @@
if (assessmentSection.HydraulicBoundaryDatabase != null)
{
- bool hydraulicBoundaryLocationAffected = RingtoetsDataSynchronizationService.ClearHydraulicBoundaryLocationOutput(assessmentSection.HydraulicBoundaryDatabase, assessmentSection);
+ var grassCoverErosionOutwardsFailureMechanism = (GrassCoverErosionOutwardsFailureMechanism)assessmentSection.GetFailureMechanisms()
+ .First(fm => fm.GetType() == typeof(GrassCoverErosionOutwardsFailureMechanism));
+
+ bool hydraulicBoundaryLocationAffected = RingtoetsDataSynchronizationService.ClearHydraulicBoundaryLocationOutput(assessmentSection.HydraulicBoundaryDatabase, grassCoverErosionOutwardsFailureMechanism);
if (hydraulicBoundaryLocationAffected)
{
+ grassCoverErosionOutwardsFailureMechanism.GrassCoverErosionOutwardsHydraulicBoundaryLocations.NotifyObservers();
+
assessmentSection.HydraulicBoundaryDatabase.NotifyObservers();
log.Info(RingtoetsIntegrationFormsResources.FailureMechanismContributionView_NormValueChanged_Waveheight_and_design_water_level_results_cleared);
}
Index: Ringtoets/Integration/src/Ringtoets.Integration.Service/RingtoetsDataSynchronizationService.cs
===================================================================
diff -u -rebf9ee4894ed003e5756d9c56be1489d54e57695 -r404fc8eb6e1ff688c90e2d45f735793a538c5c85
--- Ringtoets/Integration/src/Ringtoets.Integration.Service/RingtoetsDataSynchronizationService.cs (.../RingtoetsDataSynchronizationService.cs) (revision ebf9ee4894ed003e5756d9c56be1489d54e57695)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Service/RingtoetsDataSynchronizationService.cs (.../RingtoetsDataSynchronizationService.cs) (revision 404fc8eb6e1ff688c90e2d45f735793a538c5c85)
@@ -123,29 +123,22 @@
/// Clears the output of the hydraulic boundary locations within the .
///
/// The wich contains the locations.
- /// The which contains the locations of the failure mechanisms.
+ /// The which contains the locations.
/// true when one or multiple locations are affected by clearing the output. false otherwise.
/// Thrown when is null.
- public static bool ClearHydraulicBoundaryLocationOutput(HydraulicBoundaryDatabase hydraulicBoundaryDatabase, IAssessmentSection assessmentSection)
+ public static bool ClearHydraulicBoundaryLocationOutput(HydraulicBoundaryDatabase hydraulicBoundaryDatabase, GrassCoverErosionOutwardsFailureMechanism failureMechanism)
{
if (hydraulicBoundaryDatabase == null)
{
throw new ArgumentNullException("hydraulicBoundaryDatabase");
}
- if (assessmentSection == null)
+ if (failureMechanism == null)
{
- throw new ArgumentNullException("assessmentSection");
+ throw new ArgumentNullException("failureMechanism");
}
- var locationsAffected = false;
+ var locationsAffected = GrassCoverErosionOutwardsDataSynchronizationService.ClearHydraulicBoundaryLocationOutput(failureMechanism.GrassCoverErosionOutwardsHydraulicBoundaryLocations);
- var failureMechanism = assessmentSection.GetFailureMechanisms().First(fm => fm.GetType() == typeof(GrassCoverErosionOutwardsFailureMechanism)) as GrassCoverErosionOutwardsFailureMechanism;
-
- if (failureMechanism != null)
- {
- locationsAffected = GrassCoverErosionOutwardsDataSynchronizationService.ClearHydraulicBoundaryLocationOutput(failureMechanism.GrassCoverErosionOutwardsHydraulicBoundaryLocations);
- }
-
foreach (var hydraulicBoundaryLocation in hydraulicBoundaryDatabase.Locations
.Where(hydraulicBoundaryLocation =>
!double.IsNaN(hydraulicBoundaryLocation.DesignWaterLevel) ||
Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/FailureMechanismContributionViewIntegrationTest.cs
===================================================================
diff -u -r3d995a76fbe93cf9801596e6b959e7f5bcde5805 -r404fc8eb6e1ff688c90e2d45f735793a538c5c85
--- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/FailureMechanismContributionViewIntegrationTest.cs (.../FailureMechanismContributionViewIntegrationTest.cs) (revision 3d995a76fbe93cf9801596e6b959e7f5bcde5805)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/FailureMechanismContributionViewIntegrationTest.cs (.../FailureMechanismContributionViewIntegrationTest.cs) (revision 404fc8eb6e1ff688c90e2d45f735793a538c5c85)
@@ -33,6 +33,7 @@
using Ringtoets.Common.Data.Probability;
using Ringtoets.Common.Data.TestUtil;
using Ringtoets.GrassCoverErosionInwards.Data;
+using Ringtoets.GrassCoverErosionOutwards.Data;
using Ringtoets.HeightStructures.Data;
using Ringtoets.HydraRing.Data;
using Ringtoets.Integration.Data;
@@ -56,34 +57,42 @@
var waveHeight = (RoundedDouble) 3.0;
var designWaterLevel = (RoundedDouble) 4.2;
- HydraulicBoundaryDatabase hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
- hydraulicBoundaryDatabase.Locations.Add(new HydraulicBoundaryLocation(1, "test", 0.0, 0.0)
+ var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "test", 0.0, 0.0)
{
WaveHeight = waveHeight,
DesignWaterLevel = designWaterLevel
- });
+ };
+ var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
+ hydraulicBoundaryDatabase.Locations.Add(hydraulicBoundaryLocation);
- AssessmentSection assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike)
+ var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike)
{
HydraulicBoundaryDatabase = hydraulicBoundaryDatabase
};
- PipingCalculation emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput());
- PipingCalculation pipingCalculation = new PipingCalculation(new GeneralPipingInput())
+ var emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput());
+ var pipingCalculation = new PipingCalculation(new GeneralPipingInput())
{
Output = new TestPipingOutput()
};
- GrassCoverErosionInwardsCalculation emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation();
- GrassCoverErosionInwardsCalculation grassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation
+ var emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation();
+ var grassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation
{
Output = new GrassCoverErosionInwardsOutput(0, false, new ProbabilityAssessmentOutput(0, 0, 0, 0, 0), 0)
};
- HeightStructuresCalculation emptyHeightStructuresCalculation = new HeightStructuresCalculation();
- HeightStructuresCalculation heightStructuresCalculation = new HeightStructuresCalculation
+ var emptyHeightStructuresCalculation = new HeightStructuresCalculation();
+ var heightStructuresCalculation = new HeightStructuresCalculation
{
Output = new ProbabilityAssessmentOutput(0, 0, 0, 0, 0)
};
+ var grassCoverErosionOutwardsHydraulicBoundaryLocation = new GrassCoverErosionOutwardsHydraulicBoundaryLocation(hydraulicBoundaryLocation)
+ {
+ WaveHeight = waveHeight,
+ DesignWaterLevel = designWaterLevel
+ };
+ assessmentSection.GrassCoverErosionOutwards.GrassCoverErosionOutwardsHydraulicBoundaryLocations.Add(grassCoverErosionOutwardsHydraulicBoundaryLocation);
+
assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(emptyPipingCalculation);
assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(pipingCalculation);
assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(emptyGrassCoverErosionInwardsCalculation);
@@ -100,6 +109,8 @@
calculationObserver.Expect(co => co.UpdateObserver()).Repeat.Times(numberOfCalculations);
IObserver hydraulicBoundaryDatabaseObserver = mockRepository.StrictMock();
hydraulicBoundaryDatabaseObserver.Expect(hbdo => hbdo.UpdateObserver());
+ IObserver grassCoverErosionOutwardsObserver = mockRepository.StrictMock();
+ grassCoverErosionOutwardsObserver.Expect(o => o.UpdateObserver());
mockRepository.ReplayAll();
failureMechanismContribution.Attach(observerMock);
@@ -113,8 +124,10 @@
grassCoverErosionInwardsCalculation.Attach(calculationObserver);
heightStructuresCalculation.Attach(calculationObserver);
- using (Form form = new Form())
- using (FailureMechanismContributionView distributionView = new FailureMechanismContributionView
+ assessmentSection.GrassCoverErosionOutwards.GrassCoverErosionOutwardsHydraulicBoundaryLocations.Attach(grassCoverErosionOutwardsObserver);
+
+ using (var form = new Form())
+ using (var distributionView = new FailureMechanismContributionView
{
Data = failureMechanismContribution,
AssessmentSection = assessmentSection
@@ -123,14 +136,15 @@
form.Controls.Add(distributionView);
form.Show();
- ControlTester normTester = new ControlTester("normInput");
+ var normTester = new ControlTester("normInput");
- HydraulicBoundaryLocation hydraulicBoundaryLocation = assessmentSection.HydraulicBoundaryDatabase.Locations[0];
-
// Precondition
Assert.AreEqual(failureMechanismContribution.Norm.ToString(), normTester.Text);
Assert.AreEqual(waveHeight, hydraulicBoundaryLocation.WaveHeight, hydraulicBoundaryLocation.WaveHeight.GetAccuracy());
Assert.AreEqual(designWaterLevel, hydraulicBoundaryLocation.DesignWaterLevel, hydraulicBoundaryLocation.DesignWaterLevel.GetAccuracy());
+ Assert.AreEqual(waveHeight, grassCoverErosionOutwardsHydraulicBoundaryLocation.WaveHeight, grassCoverErosionOutwardsHydraulicBoundaryLocation.WaveHeight.GetAccuracy());
+ Assert.AreEqual(designWaterLevel, grassCoverErosionOutwardsHydraulicBoundaryLocation.DesignWaterLevel, grassCoverErosionOutwardsHydraulicBoundaryLocation.DesignWaterLevel.GetAccuracy());
+
Assert.IsNotNull(pipingCalculation.Output);
Assert.IsNotNull(grassCoverErosionInwardsCalculation.Output);
Assert.IsNotNull(heightStructuresCalculation.Output);
@@ -148,6 +162,8 @@
Assert.AreEqual(normValue, failureMechanismContribution.Norm);
Assert.IsNaN(hydraulicBoundaryLocation.WaveHeight);
Assert.IsNaN(hydraulicBoundaryLocation.DesignWaterLevel);
+ Assert.IsNaN(grassCoverErosionOutwardsHydraulicBoundaryLocation.WaveHeight);
+ Assert.IsNaN(grassCoverErosionOutwardsHydraulicBoundaryLocation.DesignWaterLevel);
Assert.IsNull(pipingCalculation.Output);
Assert.IsNull(grassCoverErosionInwardsCalculation.Output);
Assert.IsNull(heightStructuresCalculation.Output);
Index: Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/RingtoetsDataSynchronizationServiceTest.cs
===================================================================
diff -u -rebf9ee4894ed003e5756d9c56be1489d54e57695 -r404fc8eb6e1ff688c90e2d45f735793a538c5c85
--- Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/RingtoetsDataSynchronizationServiceTest.cs (.../RingtoetsDataSynchronizationServiceTest.cs) (revision ebf9ee4894ed003e5756d9c56be1489d54e57695)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/RingtoetsDataSynchronizationServiceTest.cs (.../RingtoetsDataSynchronizationServiceTest.cs) (revision 404fc8eb6e1ff688c90e2d45f735793a538c5c85)
@@ -396,10 +396,10 @@
public void ClearHydraulicBoundaryLocationOutput_HydraulicBoundaryDatabaseNull_ThrowsArgumentNullException()
{
// Setup
- var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike);
+ var failureMechanism = new GrassCoverErosionOutwardsFailureMechanism();
// Call
- TestDelegate test = () => RingtoetsDataSynchronizationService.ClearHydraulicBoundaryLocationOutput(null, assessmentSection);
+ TestDelegate test = () => RingtoetsDataSynchronizationService.ClearHydraulicBoundaryLocationOutput(null, failureMechanism);
// Assert
var exception = Assert.Throws(test);
@@ -417,7 +417,7 @@
// Assert
var exception = Assert.Throws(test);
- Assert.AreEqual("assessmentSection", exception.ParamName);
+ Assert.AreEqual("failureMechanism", exception.ParamName);
}
[Test]
@@ -439,7 +439,7 @@
assessmentSection.HydraulicBoundaryDatabase.Locations.Add(hydraulicBoundaryLocation);
// Call
- bool affected = RingtoetsDataSynchronizationService.ClearHydraulicBoundaryLocationOutput(assessmentSection.HydraulicBoundaryDatabase, assessmentSection);
+ bool affected = RingtoetsDataSynchronizationService.ClearHydraulicBoundaryLocationOutput(assessmentSection.HydraulicBoundaryDatabase, assessmentSection.GrassCoverErosionOutwards);
// Assert
Assert.IsNaN(hydraulicBoundaryLocation.DesignWaterLevel);
@@ -459,7 +459,7 @@
};
// Call
- bool affected = RingtoetsDataSynchronizationService.ClearHydraulicBoundaryLocationOutput(assessmentSection.HydraulicBoundaryDatabase, assessmentSection);
+ bool affected = RingtoetsDataSynchronizationService.ClearHydraulicBoundaryLocationOutput(assessmentSection.HydraulicBoundaryDatabase, assessmentSection.GrassCoverErosionOutwards);
// Assert
Assert.IsFalse(affected);
@@ -477,7 +477,7 @@
assessmentSection.HydraulicBoundaryDatabase.Locations.Add(hydraulicBoundaryLocation);
// Call
- bool affected = RingtoetsDataSynchronizationService.ClearHydraulicBoundaryLocationOutput(assessmentSection.HydraulicBoundaryDatabase, assessmentSection);
+ bool affected = RingtoetsDataSynchronizationService.ClearHydraulicBoundaryLocationOutput(assessmentSection.HydraulicBoundaryDatabase, assessmentSection.GrassCoverErosionOutwards);
// Assert
Assert.IsFalse(affected);
@@ -505,7 +505,7 @@
assessmentSection.GrassCoverErosionOutwards.GrassCoverErosionOutwardsHydraulicBoundaryLocations.Add(grassCoverErosionOutwardsHydraulicBoundaryLocation);
// Call
- bool affected = RingtoetsDataSynchronizationService.ClearHydraulicBoundaryLocationOutput(assessmentSection.HydraulicBoundaryDatabase, assessmentSection);
+ bool affected = RingtoetsDataSynchronizationService.ClearHydraulicBoundaryLocationOutput(assessmentSection.HydraulicBoundaryDatabase, assessmentSection.GrassCoverErosionOutwards);
// Assert
Assert.IsNaN(grassCoverErosionOutwardsHydraulicBoundaryLocation.DesignWaterLevel);
@@ -529,7 +529,7 @@
assessmentSection.GrassCoverErosionOutwards.GrassCoverErosionOutwardsHydraulicBoundaryLocations.Add(grassCoverErosionOutwardsHydraulicBoundaryLocation);
// Call
- bool affected = RingtoetsDataSynchronizationService.ClearHydraulicBoundaryLocationOutput(assessmentSection.HydraulicBoundaryDatabase, assessmentSection);
+ bool affected = RingtoetsDataSynchronizationService.ClearHydraulicBoundaryLocationOutput(assessmentSection.HydraulicBoundaryDatabase, assessmentSection.GrassCoverErosionOutwards);
// Assert
Assert.IsFalse(affected);
@@ -561,7 +561,7 @@
assessmentSection.GrassCoverErosionOutwards.GrassCoverErosionOutwardsHydraulicBoundaryLocations.Add(grassCoverErosionOutwardsHydraulicBoundaryLocation);
// Call
- bool affected = RingtoetsDataSynchronizationService.ClearHydraulicBoundaryLocationOutput(assessmentSection.HydraulicBoundaryDatabase, assessmentSection);
+ bool affected = RingtoetsDataSynchronizationService.ClearHydraulicBoundaryLocationOutput(assessmentSection.HydraulicBoundaryDatabase, assessmentSection.GrassCoverErosionOutwards);
// Assert
Assert.IsNaN(hydraulicBoundaryLocation.DesignWaterLevel);