Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Handlers/AssessmentSectionCompositionChangeHandler.cs
===================================================================
diff -u -r9cd70453e2e24e2a5896757edd13d36620e09dad -r8555639e4bd5abc568b3da0d8bd4f7c206bab337
--- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Handlers/AssessmentSectionCompositionChangeHandler.cs (.../AssessmentSectionCompositionChangeHandler.cs) (revision 9cd70453e2e24e2a5896757edd13d36620e09dad)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Handlers/AssessmentSectionCompositionChangeHandler.cs (.../AssessmentSectionCompositionChangeHandler.cs) (revision 8555639e4bd5abc568b3da0d8bd4f7c206bab337)
@@ -96,7 +96,7 @@
grassCoverErosionOutwardsFailureMechanism, duneErosionFailureMechanism);
if (hydraulicBoundaryLocationAffected.Any())
{
- log.Info(Resources.FailureMechanismContributionNormChangeHandler_Waveheight_and_design_water_level_results_cleared);
+ log.Info(Resources.AssessmentSectionCompositionChangeHandler_Waveheight_and_design_water_level_results_cleared);
return new IObservable[]
{
grassCoverErosionOutwardsFailureMechanism.HydraulicBoundaryLocations,
Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Properties/Resources.Designer.cs
===================================================================
diff -u -r3722e29f53ce7db0f11fb184cdc2a76d33078cf2 -r8555639e4bd5abc568b3da0d8bd4f7c206bab337
--- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 3722e29f53ce7db0f11fb184cdc2a76d33078cf2)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 8555639e4bd5abc568b3da0d8bd4f7c206bab337)
@@ -94,6 +94,16 @@
}
///
+ /// Looks up a localized string similar to Alle berekende resultaten voor alle hydraulische randvoorwaardenlocaties van grasbekleding erosie binnentalud en duinen zijn verwijderd..
+ ///
+ public static string AssessmentSectionCompositionChangeHandler_Waveheight_and_design_water_level_results_cleared {
+ get {
+ return ResourceManager.GetString("AssessmentSectionCompositionChangeHandler_Waveheight_and_design_water_level_resul" +
+ "ts_cleared", resourceCulture);
+ }
+ }
+
+ ///
/// Looks up a localized string similar to De resultaten van {0} berekeningen zijn verwijderd..
///
public static string ChangeHandler_Results_of_NumberOfCalculations_0_calculations_cleared {
Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Properties/Resources.resx
===================================================================
diff -u -r3722e29f53ce7db0f11fb184cdc2a76d33078cf2 -r8555639e4bd5abc568b3da0d8bd4f7c206bab337
--- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Properties/Resources.resx (.../Resources.resx) (revision 3722e29f53ce7db0f11fb184cdc2a76d33078cf2)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Properties/Resources.resx (.../Resources.resx) (revision 8555639e4bd5abc568b3da0d8bd4f7c206bab337)
@@ -166,4 +166,7 @@
Achtergrondlaag
+
+ Alle berekende resultaten voor alle hydraulische randvoorwaardenlocaties van grasbekleding erosie binnentalud en duinen zijn verwijderd.
+
\ No newline at end of file
Index: Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/Handlers/AssessmentSectionCompositionChangeHandlerTest.cs
===================================================================
diff -u -r9cd70453e2e24e2a5896757edd13d36620e09dad -r8555639e4bd5abc568b3da0d8bd4f7c206bab337
--- Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/Handlers/AssessmentSectionCompositionChangeHandlerTest.cs (.../AssessmentSectionCompositionChangeHandlerTest.cs) (revision 9cd70453e2e24e2a5896757edd13d36620e09dad)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/Handlers/AssessmentSectionCompositionChangeHandlerTest.cs (.../AssessmentSectionCompositionChangeHandlerTest.cs) (revision 8555639e4bd5abc568b3da0d8bd4f7c206bab337)
@@ -196,7 +196,7 @@
string[] expectedMessage =
{
"De resultaten van 32 berekeningen zijn verwijderd.",
- "Alle berekende resultaten voor alle hydraulische randvoorwaardenlocaties zijn verwijderd."
+ "Alle berekende resultaten voor alle hydraulische randvoorwaardenlocaties van grasbekleding erosie binnentalud en duinen zijn verwijderd."
};
TestHelper.AssertLogMessagesAreGenerated(call, expectedMessage, 2);
@@ -256,7 +256,7 @@
Action call = () => affectedObjects = handler.ChangeComposition(assessmentSection, newComposition);
// Assert
- TestHelper.AssertLogMessageIsGenerated(call, "Alle berekende resultaten voor alle hydraulische randvoorwaardenlocaties zijn verwijderd.", 1);
+ TestHelper.AssertLogMessageIsGenerated(call, "Alle berekende resultaten voor alle hydraulische randvoorwaardenlocaties van grasbekleding erosie binnentalud en duinen zijn verwijderd.", 1);
Assert.AreEqual(newComposition, assessmentSection.Composition);
Assert.True(assessmentSection.GetFailureMechanisms().SelectMany(fm => fm.Calculations).All(c => !c.HasOutput));
Index: Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/RingtoetsDataSynchronizationServiceTest.cs
===================================================================
diff -u -re7b22b417acc51a88beb210ba39fef0f75e2760e -r8555639e4bd5abc568b3da0d8bd4f7c206bab337
--- Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/RingtoetsDataSynchronizationServiceTest.cs (.../RingtoetsDataSynchronizationServiceTest.cs) (revision e7b22b417acc51a88beb210ba39fef0f75e2760e)
+++ Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/RingtoetsDataSynchronizationServiceTest.cs (.../RingtoetsDataSynchronizationServiceTest.cs) (revision 8555639e4bd5abc568b3da0d8bd4f7c206bab337)
@@ -53,6 +53,64 @@
[TestFixture]
public class RingtoetsDataSynchronizationServiceTest
{
+ #region TestData
+
+ private static IEnumerable GrassAndDuneLocations
+ {
+ get
+ {
+ TestDuneLocation duneLocationOutput;
+ TestHydraulicBoundaryLocation grassBoundaryLocationOutput;
+
+ yield return new TestCaseData(
+ new TestHydraulicBoundaryLocation(),
+ new TestDuneLocation(),
+ new IObservable[0]
+ ).SetName("GrassAndDuneLocationNoOutput");
+ yield return new TestCaseData(
+ grassBoundaryLocationOutput = new TestHydraulicBoundaryLocation
+ {
+ DesignWaterLevelOutput = new TestHydraulicBoundaryLocationOutput(0.5),
+ WaveHeightOutput = new TestHydraulicBoundaryLocationOutput(0.6)
+ },
+ new TestDuneLocation(),
+ new IObservable[]
+ {
+ grassBoundaryLocationOutput
+ }
+ ).SetName("GrassLocationWithOutput");
+ yield return new TestCaseData(
+ new TestHydraulicBoundaryLocation(),
+ duneLocationOutput = new TestDuneLocation
+ {
+ Output = new TestDuneLocationOutput()
+ },
+ new IObservable[]
+ {
+ duneLocationOutput
+ }
+ ).SetName("DuneLocationWithOutput");
+ yield return new TestCaseData(
+ grassBoundaryLocationOutput = new TestHydraulicBoundaryLocation
+ {
+ DesignWaterLevelOutput = new TestHydraulicBoundaryLocationOutput(0.5),
+ WaveHeightOutput = new TestHydraulicBoundaryLocationOutput(0.6)
+ },
+ duneLocationOutput = new TestDuneLocation
+ {
+ Output = new TestDuneLocationOutput()
+ },
+ new IObservable[]
+ {
+ grassBoundaryLocationOutput,
+ duneLocationOutput
+ }
+ ).SetName("GrassAndDuneLocationWithOutput");
+ }
+ }
+
+ #endregion
+
[Test]
public void ClearFailureMechanismCalculationOutputs_WithoutAssessmentSection_ThrowsArgumentNullException()
{
@@ -205,7 +263,7 @@
}
[Test]
- public void ClearHydraulicBoundaryLocationOutput_grassCoverErosionOutwardsFailureMechanismNull_ThrowsArgumentNullException()
+ public void ClearHydraulicBoundaryLocationOutput_GrassCoverErosionOutwardsFailureMechanismNull_ThrowsArgumentNullException()
{
// Setup
var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase();
@@ -239,6 +297,36 @@
}
[Test]
+ public void ClearHydraulicBoundaryLocationOutput_TwoArgumentsGrassCoverErosionOutwardsFailureMechanismNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var duneErosionFailureMechanism = new DuneErosionFailureMechanism();
+
+ // Call
+ TestDelegate test = () => RingtoetsDataSynchronizationService.ClearHydraulicBoundaryLocationOutput(null,
+ duneErosionFailureMechanism);
+
+ // Assert
+ var exception = Assert.Throws(test);
+ Assert.AreEqual("grassCoverErosionOutwardsFailureMechanism", exception.ParamName);
+ }
+
+ [Test]
+ public void ClearHydraulicBoundaryLocationOutput_TwoArgumentsDuneErosionFailureMechanismNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var grassCoverErosionOutwardsFailureMechanism = new GrassCoverErosionOutwardsFailureMechanism();
+
+ // Call
+ TestDelegate test = () => RingtoetsDataSynchronizationService.ClearHydraulicBoundaryLocationOutput(grassCoverErosionOutwardsFailureMechanism,
+ null);
+
+ // Assert
+ var exception = Assert.Throws(test);
+ Assert.AreEqual("duneErosionFailureMechanism", exception.ParamName);
+ }
+
+ [Test]
[TestCase(1.0, 3.0)]
[TestCase(3.8, double.NaN)]
[TestCase(double.NaN, 6.9)]
@@ -274,9 +362,9 @@
Assert.AreEqual(CalculationConvergence.NotCalculated, hydraulicBoundaryLocation.WaveHeightCalculationConvergence);
CollectionAssert.AreEqual(new[]
- {
- hydraulicBoundaryLocation
- }, affectedObjects);
+ {
+ hydraulicBoundaryLocation
+ }, affectedObjects);
mockRepository.VerifyAll();
}
@@ -368,9 +456,9 @@
Assert.AreEqual(CalculationConvergence.NotCalculated, grassCoverErosionOutwardsHydraulicBoundaryLocation.WaveHeightCalculationConvergence);
CollectionAssert.AreEqual(new[]
- {
- grassCoverErosionOutwardsHydraulicBoundaryLocation
- }, affectedObjects);
+ {
+ grassCoverErosionOutwardsHydraulicBoundaryLocation
+ }, affectedObjects);
}
[Test]
@@ -464,14 +552,42 @@
Assert.AreEqual(CalculationConvergence.NotCalculated, grassCoverErosionOutwardsHydraulicBoundaryLocation.WaveHeightCalculationConvergence);
CollectionAssert.AreEquivalent(new[]
- {
- grassCoverErosionOutwardsHydraulicBoundaryLocation,
- hydraulicBoundaryLocation
- }, affectedObjects);
+ {
+ grassCoverErosionOutwardsHydraulicBoundaryLocation,
+ hydraulicBoundaryLocation
+ }, affectedObjects);
mockRepository.VerifyAll();
}
[Test]
+ [TestCaseSource(nameof(GrassAndDuneLocations))]
+ public void ClearHydraulicBoundaryLocationOutput_GrassCoverErosionOutwardsAndDuneLocations_ClearDataAndReturnAffectedHydraulicBoundaryLocations(HydraulicBoundaryLocation grassBoundaryLocation,
+ DuneLocation duneLocation,
+ IEnumerable expectedAffectedItems)
+ {
+ // Setup
+ var grassCoverErosionOutwardsFailureMechanism = new GrassCoverErosionOutwardsFailureMechanism();
+
+ var duneErosionFailureMechanism = new DuneErosionFailureMechanism();
+ duneErosionFailureMechanism.DuneLocations.Add(duneLocation);
+
+ grassCoverErosionOutwardsFailureMechanism.HydraulicBoundaryLocations.Add(grassBoundaryLocation);
+
+ // Call
+ IEnumerable affectedObjects = RingtoetsDataSynchronizationService.ClearHydraulicBoundaryLocationOutput(
+ grassCoverErosionOutwardsFailureMechanism,
+ duneErosionFailureMechanism);
+
+ // Assert
+ // Note: To make sure the clear is performed regardless of what is done with
+ // the return result, no ToArray() should be called before these assertions:
+ CollectionAssert.AreEquivalent(expectedAffectedItems, affectedObjects);
+ Assert.IsNull(duneLocation.Output);
+ Assert.IsNull(grassBoundaryLocation.DesignWaterLevelOutput);
+ Assert.IsNull(grassBoundaryLocation.WaveHeightOutput);
+ }
+
+ [Test]
public void ClearReferenceLine_AssessmentSectionNull_ThrowArgumentNullException()
{
// Call