Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs
===================================================================
diff -u -r0bb125b90287c712f303d231c1083fc79ef45a9a -r636a79efa1f104b917c48d043151ada9fc4e69ac
--- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 0bb125b90287c712f303d231c1083fc79ef45a9a)
+++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Plugin/GrassCoverErosionInwardsGuiPlugin.cs (.../GrassCoverErosionInwardsGuiPlugin.cs) (revision 636a79efa1f104b917c48d043151ada9fc4e69ac)
@@ -137,6 +137,7 @@
ParseForeshore(inwardsInput),
ParseBreakWater(inwardsInput)
),
+ () => { },
output => { ParseHydraRingOutput(calculation, output); });
}
Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Activities/HydraRingActivity.cs
===================================================================
diff -u -re4613b1908b45105cdc5be7f3fb2f4fad823473e -r636a79efa1f104b917c48d043151ada9fc4e69ac
--- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Activities/HydraRingActivity.cs (.../HydraRingActivity.cs) (revision e4613b1908b45105cdc5be7f3fb2f4fad823473e)
+++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Activities/HydraRingActivity.cs (.../HydraRingActivity.cs) (revision 636a79efa1f104b917c48d043151ada9fc4e69ac)
@@ -35,20 +35,17 @@
/// Creates a new instance of the class.
///
/// The action to perform before running a Hydra-Ring calculation (like clearing output, validation, etc.).
- /// Thrown when is null.
protected HydraRingActivity(Action beforeRunAction)
{
- if (beforeRunAction == null)
- {
- throw new ArgumentNullException("beforeRunAction", @"The action to perform before run should be set.");
- }
-
this.beforeRunAction = beforeRunAction;
}
protected override void OnRun()
{
- beforeRunAction();
+ if (beforeRunAction != null)
+ {
+ beforeRunAction();
+ }
}
}
}
Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Activities/HydraRingActivityFactory.cs
===================================================================
diff -u -rb2ad6c7d0227c965485ec4d6f8a98f7a49a59951 -r636a79efa1f104b917c48d043151ada9fc4e69ac
--- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Activities/HydraRingActivityFactory.cs (.../HydraRingActivityFactory.cs) (revision b2ad6c7d0227c965485ec4d6f8a98f7a49a59951)
+++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Activities/HydraRingActivityFactory.cs (.../HydraRingActivityFactory.cs) (revision 636a79efa1f104b917c48d043151ada9fc4e69ac)
@@ -44,7 +44,8 @@
/// The to use while executing the calculation.
/// The to use while executing the calculation.
/// The input of the calculation to perform.
- /// The action to perform after the calculation is performed.
+ /// The action to perform before the calculation is performed.
+ /// The action to perform after the calculation is performed.
/// Thrown when one of the string arguments is null or empty.
/// Thrown when one of the other arguments is null.
public static TargetProbabilityCalculationActivity Create(string name,
@@ -53,11 +54,17 @@
HydraRingTimeIntegrationSchemeType timeIntegrationSchemeType,
HydraRingUncertaintiesType uncertaintiesType,
TargetProbabilityCalculationInput targetProbabilityCalculationInput,
- Action action)
+ Action beforeRunAction,
+ Action handleOutputAction)
{
- VerifyCalculationActivityInput(name, hlcdDirectory, ringId, timeIntegrationSchemeType, uncertaintiesType, targetProbabilityCalculationInput, action);
+ VerifyCalculationActivityInput(name, hlcdDirectory, ringId, timeIntegrationSchemeType,
+ uncertaintiesType, targetProbabilityCalculationInput,
+ beforeRunAction, handleOutputAction);
- return new TargetProbabilityCalculationActivity(name, hlcdDirectory, ringId, timeIntegrationSchemeType, uncertaintiesType, targetProbabilityCalculationInput, null, action, hydraRingCalculationService);
+ return new TargetProbabilityCalculationActivity(name, hlcdDirectory, ringId, timeIntegrationSchemeType,
+ uncertaintiesType, targetProbabilityCalculationInput,
+ beforeRunAction, handleOutputAction,
+ hydraRingCalculationService);
}
///
@@ -69,7 +76,8 @@
/// The to use while executing the calculation.
/// The to use while executing the calculation.
/// The input of the calculation to perform.
- /// The action to perform after the calculation is performed.
+ /// The action to perform before the calculation is performed.
+ /// The action to perform after the calculation is performed.
/// Thrown when one of the string arguments is null or empty.
/// Thrown when one of the other arguments is null.
public static ExceedanceProbabilityCalculationActivity Create(string name,
@@ -78,16 +86,22 @@
HydraRingTimeIntegrationSchemeType timeIntegrationSchemeType,
HydraRingUncertaintiesType uncertaintiesType,
ExceedanceProbabilityCalculationInput exceedanceProbabilityCalculationInput,
- Action action)
+ Action beforeRunAction,
+ Action handleOutputAction)
{
- VerifyCalculationActivityInput(name, hlcdDirectory, ringId, timeIntegrationSchemeType, uncertaintiesType, exceedanceProbabilityCalculationInput, action);
+ VerifyCalculationActivityInput(name, hlcdDirectory, ringId, timeIntegrationSchemeType,
+ uncertaintiesType, exceedanceProbabilityCalculationInput,
+ beforeRunAction, handleOutputAction);
- return new ExceedanceProbabilityCalculationActivity(name, hlcdDirectory, ringId, timeIntegrationSchemeType, uncertaintiesType, exceedanceProbabilityCalculationInput, null, action, hydraRingCalculationService);
+ return new ExceedanceProbabilityCalculationActivity(name, hlcdDirectory, ringId, timeIntegrationSchemeType,
+ uncertaintiesType, exceedanceProbabilityCalculationInput,
+ beforeRunAction, handleOutputAction,
+ hydraRingCalculationService);
}
private static void VerifyCalculationActivityInput(string name, string hlcdDirectory, string ringId, HydraRingTimeIntegrationSchemeType timeIntegrationSchemeType,
HydraRingUncertaintiesType uncertaintiesType, HydraRingCalculationInput hydraRingCalculationInput,
- object action)
+ object beforeRunAction, object handleOutputAction)
{
if (string.IsNullOrEmpty(hlcdDirectory))
{
@@ -104,10 +118,15 @@
throw new ArgumentNullException("hydraRingCalculationInput", @"Calculation input should be set.");
}
- if (action == null)
+ if (beforeRunAction == null)
{
- throw new ArgumentNullException("action", @"Handle calculation output action should be set.");
+ throw new ArgumentNullException("beforeRunAction", @"Before calculation run action should be set.");
}
+
+ if (handleOutputAction == null)
+ {
+ throw new ArgumentNullException("handleOutputAction", @"Handle calculation output action should be set.");
+ }
}
}
}
\ No newline at end of file
Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Activities/HydraRingActivityFactoryTest.cs
===================================================================
diff -u -r578037b5080f7a4820286ea02c6b4c322a8b1b09 -r636a79efa1f104b917c48d043151ada9fc4e69ac
--- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Activities/HydraRingActivityFactoryTest.cs (.../HydraRingActivityFactoryTest.cs) (revision 578037b5080f7a4820286ea02c6b4c322a8b1b09)
+++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Activities/HydraRingActivityFactoryTest.cs (.../HydraRingActivityFactoryTest.cs) (revision 636a79efa1f104b917c48d043151ada9fc4e69ac)
@@ -44,7 +44,7 @@
mocks.ReplayAll();
// Call
- TestDelegate test = () => HydraRingActivityFactory.Create("name", "", "ringId", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, exceedanceProbabilityCalculationInput, output => { });
+ TestDelegate test = () => HydraRingActivityFactory.Create("name", "", "ringId", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, exceedanceProbabilityCalculationInput, () => { }, output => { });
// Assert
var exception = Assert.Throws(test, "HLCD directory should be set.");
@@ -61,7 +61,7 @@
mocks.ReplayAll();
// Call
- TestDelegate test = () => HydraRingActivityFactory.Create("name", "hlcdDirectory", "", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, exceedanceProbabilityCalculationInput, output => { });
+ TestDelegate test = () => HydraRingActivityFactory.Create("name", "hlcdDirectory", "", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, exceedanceProbabilityCalculationInput, () => { }, output => { });
// Assert
var exception = Assert.Throws(test, "Ring id should be set.");
@@ -76,14 +76,30 @@
mocks.ReplayAll();
// Call
- TestDelegate test = () => HydraRingActivityFactory.Create("name", "hlcdDirectory", "ringId", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, (ExceedanceProbabilityCalculationInput) null, output => { });
+ TestDelegate test = () => HydraRingActivityFactory.Create("name", "hlcdDirectory", "ringId", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, (ExceedanceProbabilityCalculationInput) null, () => { }, output => { });
// Assert
var exception = Assert.Throws(test, "Calculation input should be set.");
Assert.AreEqual("hydraRingCalculationInput", exception.ParamName);
}
[Test]
+ public void CreateExceedanceProbabilityCalculationInput_InputHandleBeforeCalculationActionNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var exceedanceProbabilityCalculationInput = mocks.StrictMock(1);
+ mocks.ReplayAll();
+
+ // Call
+ TestDelegate test = () => HydraRingActivityFactory.Create("name", "hlcdDirectory", "ringId", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, exceedanceProbabilityCalculationInput, null, output => { });
+
+ // Assert
+ var exception = Assert.Throws(test, "Handle before calculation run action should be set.");
+ Assert.AreEqual("beforeRunAction", exception.ParamName);
+ }
+
+ [Test]
public void CreateExceedanceProbabilityCalculationInput_InputHandleCalculationOutputActionNull_ThrowsArgumentNullException()
{
// Setup
@@ -92,11 +108,11 @@
mocks.ReplayAll();
// Call
- TestDelegate test = () => HydraRingActivityFactory.Create("name", "hlcdDirectory", "ringId", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, exceedanceProbabilityCalculationInput, null);
+ TestDelegate test = () => HydraRingActivityFactory.Create("name", "hlcdDirectory", "ringId", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, exceedanceProbabilityCalculationInput, () => { }, null);
// Assert
var exception = Assert.Throws(test, "Handle calculation output action should be set.");
- Assert.AreEqual("action", exception.ParamName);
+ Assert.AreEqual("handleOutputAction", exception.ParamName);
}
[Test]
@@ -109,7 +125,7 @@
mocks.ReplayAll();
// Call
- var activity = HydraRingActivityFactory.Create("name", "hlcdDirectory", "ringId", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, exceedanceProbabilityCalculationInput, output => { });
+ var activity = HydraRingActivityFactory.Create("name", "hlcdDirectory", "ringId", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, exceedanceProbabilityCalculationInput, () => { }, output => { });
// Assert
Assert.IsInstanceOf(activity);
@@ -132,7 +148,7 @@
mocks.ReplayAll();
// Call
- TestDelegate test = () => HydraRingActivityFactory.Create("name", "", "ringId", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, targetProbabilityCalculationInput, output => { });
+ TestDelegate test = () => HydraRingActivityFactory.Create("name", "", "ringId", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, targetProbabilityCalculationInput, () => { }, output => { });
// Assert
var exception = Assert.Throws(test, "HLCD directory should be set.");
@@ -149,7 +165,7 @@
mocks.ReplayAll();
// Call
- TestDelegate test = () => HydraRingActivityFactory.Create("name", "hlcdDirectory", "", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, targetProbabilityCalculationInput, output => { });
+ TestDelegate test = () => HydraRingActivityFactory.Create("name", "hlcdDirectory", "", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, targetProbabilityCalculationInput, () => { }, output => { });
// Assert
var exception = Assert.Throws(test, "Ring id should be set.");
@@ -165,14 +181,31 @@
mocks.ReplayAll();
// Call
- TestDelegate test = () => HydraRingActivityFactory.Create("name", "hlcdDirectory", "ringId", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, (TargetProbabilityCalculationInput) null, output => { });
+ TestDelegate test = () => HydraRingActivityFactory.Create("name", "hlcdDirectory", "ringId", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, (TargetProbabilityCalculationInput) null, () => { }, output => { });
// Assert
var exception = Assert.Throws(test, "Calculation input should be set.");
Assert.AreEqual("hydraRingCalculationInput", exception.ParamName);
}
[Test]
+ public void CreateTargetProbabilityCalculationInput_InputHandleBeforeCalculationActionNull_ThrowsArgumentNullException()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var targetProbabilityCalculationInput = mocks.StrictMock(1, 2.2);
+
+ mocks.ReplayAll();
+
+ // Call
+ TestDelegate test = () => HydraRingActivityFactory.Create("name", "hlcdDirectory", "ringId", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, targetProbabilityCalculationInput, null, output => { });
+
+ // Assert
+ var exception = Assert.Throws(test, "Before calculation run action should be set.");
+ Assert.AreEqual("beforeRunAction", exception.ParamName);
+ }
+
+ [Test]
public void CreateTargetProbabilityCalculationInput_InputHandleCalculationOutputActionNull_ThrowsArgumentNullException()
{
// Setup
@@ -182,11 +215,11 @@
mocks.ReplayAll();
// Call
- TestDelegate test = () => HydraRingActivityFactory.Create("name", "hlcdDirectory", "ringId", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, targetProbabilityCalculationInput, null);
+ TestDelegate test = () => HydraRingActivityFactory.Create("name", "hlcdDirectory", "ringId", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, targetProbabilityCalculationInput, () => { }, null);
// Assert
var exception = Assert.Throws(test, "Handle calculation output action should be set.");
- Assert.AreEqual("action", exception.ParamName);
+ Assert.AreEqual("handleOutputAction", exception.ParamName);
}
[Test]
@@ -199,7 +232,7 @@
mocks.ReplayAll();
// Call
- var activity = HydraRingActivityFactory.Create("name", "hlcdDirectory", "ringId", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, targetProbabilityCalculationInput, output => { });
+ var activity = HydraRingActivityFactory.Create("name", "hlcdDirectory", "ringId", HydraRingTimeIntegrationSchemeType.FBC, HydraRingUncertaintiesType.All, targetProbabilityCalculationInput, () => { }, output => { });
// Assert
Assert.IsInstanceOf(activity);
Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Activities/HydraRingActivityTest.cs
===================================================================
diff -u -re4613b1908b45105cdc5be7f3fb2f4fad823473e -r636a79efa1f104b917c48d043151ada9fc4e69ac
--- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Activities/HydraRingActivityTest.cs (.../HydraRingActivityTest.cs) (revision e4613b1908b45105cdc5be7f3fb2f4fad823473e)
+++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Activities/HydraRingActivityTest.cs (.../HydraRingActivityTest.cs) (revision 636a79efa1f104b917c48d043151ada9fc4e69ac)
@@ -29,16 +29,32 @@
public class HydraRingActivityTest
{
[Test]
- public void Constructor_BeforeRunActionNull_ThrowsArgumentNullException()
+ public void Run_BeforeRunActionSet_BeforeRunActionPerformed()
{
+ // Setup
+ var count = 0;
+ var hydraRingActivity = new TestHydraRingActivity(() => { count++; });
+
// Call
- TestDelegate test = () => new TestHydraRingActivity(null);
+ hydraRingActivity.Run();
// Assert
- var paramName = Assert.Throws(test).ParamName;
- Assert.AreEqual("beforeRunAction", paramName);
+ Assert.AreEqual(1, count);
}
+ [Test]
+ public void Run_BeforeRunActionNull_DoesNotThrow()
+ {
+ // Setup
+ var hydraRingActivity = new TestHydraRingActivity(null);
+
+ // Call
+ TestDelegate test = () => hydraRingActivity.Run();
+
+ // Assert
+ Assert.DoesNotThrow(test);
+ }
+
private class TestHydraRingActivity : HydraRingActivity
{
public TestHydraRingActivity(Action beforeRunAction) : base(beforeRunAction) {}
Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs
===================================================================
diff -u -r60f9f8cfadfe1b22e5989aa92ab9839c4623338d -r636a79efa1f104b917c48d043151ada9fc4e69ac
--- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs (.../RingtoetsGuiPlugin.cs) (revision 60f9f8cfadfe1b22e5989aa92ab9839c4623338d)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs (.../RingtoetsGuiPlugin.cs) (revision 636a79efa1f104b917c48d043151ada9fc4e69ac)
@@ -706,6 +706,7 @@
HydraRingTimeIntegrationSchemeType.FBC,
HydraRingUncertaintiesType.All,
new AssessmentLevelCalculationInput((int) hydraulicBoundaryLocation.Id, assessmentSection.FailureMechanismContribution.Norm),
+ () => { },
output => { ParseHydraRingOutput(hydraulicBoundaryLocation, output); });
}