Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRingConfiguration.cs
===================================================================
diff -u -r78bf55af8849866f8a6d1636508db4a8142ae69d -r4f65e684123e5d1a3ba8716d99752311dbbb67e2
--- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRingConfiguration.cs (.../HydraRingConfiguration.cs) (revision 78bf55af8849866f8a6d1636508db4a8142ae69d)
+++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/HydraRingConfiguration.cs (.../HydraRingConfiguration.cs) (revision 4f65e684123e5d1a3ba8716d99752311dbbb67e2)
@@ -48,14 +48,20 @@
public HydraulicBoundaryLocation HydraulicBoundaryLocation { get; set; }
///
+ /// Gets or sets the .
+ ///
+ public HydraRingFailureMechanismType? HydraRingFailureMechanismType { get; set; }
+
+ ///
/// Generates a database creation script that can be used to perform a Hydra-Ring calculation.
///
/// The database creation script.
+ /// Thrown when one of the relevant input properties is not set.
public string GenerateDataBaseCreationScript()
{
var configurationDictionary = new Dictionary>();
- ValidateInput();
+ ValidateDataBaseCreationScriptInput();
InitializeHydraulicModelsConfiguration(configurationDictionary);
InitializeSectionsConfiguration(configurationDictionary);
@@ -66,7 +72,7 @@
return GenerateDataBaseCreationScript(configurationDictionary);
}
- private void ValidateInput()
+ private void ValidateDataBaseCreationScriptInput()
{
var formattedExceptionMessage = "Cannot generate database creation script: {0} unspecified.";
@@ -79,6 +85,16 @@
{
throw new InvalidOperationException(string.Format(formattedExceptionMessage, "HydraRingUncertaintiesType"));
}
+
+ if (HydraulicBoundaryLocation == null)
+ {
+ throw new InvalidOperationException(string.Format(formattedExceptionMessage, "HydraulicBoundaryLocation"));
+ }
+
+ if (HydraRingFailureMechanismType == null)
+ {
+ throw new InvalidOperationException(string.Format(formattedExceptionMessage, "HydraRingFailureMechanismType"));
+ }
}
private void InitializeHydraulicModelsConfiguration(Dictionary> configurationDictionary)
@@ -134,10 +150,10 @@
"YCoordinate", null // TODO: Dike cross section integration
},
{
- "StationId1", HydraulicBoundaryLocation != null ? (long?) HydraulicBoundaryLocation.Id : null
+ "StationId1", HydraulicBoundaryLocation.Id
},
{
- "StationId2", HydraulicBoundaryLocation != null ? (long?) HydraulicBoundaryLocation.Id : null // Same as "StationId1": no support for coupling two stations
+ "StationId2", HydraulicBoundaryLocation.Id // Same as "StationId1": no support for coupling two stations
},
{
"Relative", 100.0 // Fixed: no support for coupling two stations
Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/HydraRingConfigurationTest.cs
===================================================================
diff -u -r78bf55af8849866f8a6d1636508db4a8142ae69d -r4f65e684123e5d1a3ba8716d99752311dbbb67e2
--- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/HydraRingConfigurationTest.cs (.../HydraRingConfigurationTest.cs) (revision 78bf55af8849866f8a6d1636508db4a8142ae69d)
+++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/HydraRingConfigurationTest.cs (.../HydraRingConfigurationTest.cs) (revision 4f65e684123e5d1a3ba8716d99752311dbbb67e2)
@@ -34,7 +34,8 @@
var hydraRingConfiguration = new HydraRingConfiguration
{
HydraRingUncertaintiesType = HydraRingUncertaintiesType.Model,
- HydraulicBoundaryLocation = new HydraulicBoundaryLocation(700003, "", 0, 0)
+ HydraulicBoundaryLocation = new HydraulicBoundaryLocation(700003, "", 0, 0),
+ HydraRingFailureMechanismType = HydraRingFailureMechanismType.AssessmentLevel
};
// Call
@@ -50,7 +51,8 @@
var hydraRingConfiguration = new HydraRingConfiguration
{
HydraRingTimeIntegrationSchemeType = HydraRingTimeIntegrationSchemeType.FBC,
- HydraulicBoundaryLocation = new HydraulicBoundaryLocation(700003, "", 0, 0)
+ HydraulicBoundaryLocation = new HydraulicBoundaryLocation(700003, "", 0, 0),
+ HydraRingFailureMechanismType = HydraRingFailureMechanismType.AssessmentLevel
};
// Call
@@ -61,13 +63,48 @@
}
[Test]
+ public void GenerateDataBaseCreationScript_HydraulicBoundaryLocationUnspecified_ThrowsInvalidOperationException()
+ {
+ var hydraRingConfiguration = new HydraRingConfiguration
+ {
+ HydraRingTimeIntegrationSchemeType = HydraRingTimeIntegrationSchemeType.FBC,
+ HydraRingUncertaintiesType = HydraRingUncertaintiesType.Model,
+ HydraRingFailureMechanismType = HydraRingFailureMechanismType.AssessmentLevel
+ };
+
+ // Call
+ TestDelegate test = () => hydraRingConfiguration.GenerateDataBaseCreationScript();
+
+ // Assert
+ Assert.Throws(test, "Cannot generate database creation script: HydraulicBoundaryLocation unspecified.");
+ }
+
+ [Test]
+ public void GenerateDataBaseCreationScript_HydraRingFailureMechanismTypeUnspecified_ThrowsInvalidOperationException()
+ {
+ var hydraRingConfiguration = new HydraRingConfiguration
+ {
+ HydraRingTimeIntegrationSchemeType = HydraRingTimeIntegrationSchemeType.FBC,
+ HydraRingUncertaintiesType = HydraRingUncertaintiesType.Model,
+ HydraulicBoundaryLocation = new HydraulicBoundaryLocation(700003, "", 0, 0)
+ };
+
+ // Call
+ TestDelegate test = () => hydraRingConfiguration.GenerateDataBaseCreationScript();
+
+ // Assert
+ Assert.Throws(test, "Cannot generate database creation script: HydraRingFailureMechanismType unspecified.");
+ }
+
+ [Test]
public void GenerateDataBaseCreationScript_NonDefaultHydraRingConfiguration_ReturnsExpectedCreationScript()
{
var hydraRingConfiguration = new HydraRingConfiguration
{
HydraRingTimeIntegrationSchemeType = HydraRingTimeIntegrationSchemeType.NTI,
HydraRingUncertaintiesType = HydraRingUncertaintiesType.Model,
- HydraulicBoundaryLocation = new HydraulicBoundaryLocation(700003, "", 0, 0)
+ HydraulicBoundaryLocation = new HydraulicBoundaryLocation(700003, "", 0, 0),
+ HydraRingFailureMechanismType = HydraRingFailureMechanismType.AssessmentLevel
};
var expectedCreationScript = "DELETE FROM [HydraulicModels];" + Environment.NewLine +