Index: Riskeer/Common/src/Riskeer.Common.Service/HydraulicBoundaryDataConnectionValidator.cs
===================================================================
diff -u -r7a68fbcefe7f73fa6f0a05b536dd2abc166a8105 -rddb6a57a735ac1222a0139e01dd3b57fb2e950ca
--- Riskeer/Common/src/Riskeer.Common.Service/HydraulicBoundaryDataConnectionValidator.cs (.../HydraulicBoundaryDataConnectionValidator.cs) (revision 7a68fbcefe7f73fa6f0a05b536dd2abc166a8105)
+++ Riskeer/Common/src/Riskeer.Common.Service/HydraulicBoundaryDataConnectionValidator.cs (.../HydraulicBoundaryDataConnectionValidator.cs) (revision ddb6a57a735ac1222a0139e01dd3b57fb2e950ca)
@@ -39,6 +39,8 @@
/// The hydraulic boundary location to validate for.
/// An error message if a problem was found; null in case no problems were found.
/// Thrown when any parameter is null.
+ /// Thrown when is not part of
+ /// .
public static string Validate(HydraulicBoundaryData hydraulicBoundaryData, HydraulicBoundaryLocation hydraulicBoundaryLocation)
{
if (hydraulicBoundaryData == null)
@@ -57,7 +59,7 @@
}
string validationProblem = HydraulicBoundaryDataHelper.ValidateFilesForCalculation(
- hydraulicBoundaryData.FilePath,
+ hydraulicBoundaryData.GetHydraulicBoundaryDatabaseForLocation(hydraulicBoundaryLocation).FilePath,
hydraulicBoundaryData.HydraulicLocationConfigurationDatabase.FilePath,
hydraulicBoundaryData.HydraulicLocationConfigurationDatabase.UsePreprocessorClosure);
Index: Riskeer/Common/test/Riskeer.Common.Service.Test/HydraulicBoundaryDataConnectionValidatorTest.cs
===================================================================
diff -u -r5ed6320f359270c612c45b2d32d9a5d5c3c99f35 -rddb6a57a735ac1222a0139e01dd3b57fb2e950ca
--- Riskeer/Common/test/Riskeer.Common.Service.Test/HydraulicBoundaryDataConnectionValidatorTest.cs (.../HydraulicBoundaryDataConnectionValidatorTest.cs) (revision 5ed6320f359270c612c45b2d32d9a5d5c3c99f35)
+++ Riskeer/Common/test/Riskeer.Common.Service.Test/HydraulicBoundaryDataConnectionValidatorTest.cs (.../HydraulicBoundaryDataConnectionValidatorTest.cs) (revision ddb6a57a735ac1222a0139e01dd3b57fb2e950ca)
@@ -70,16 +70,52 @@
}
[Test]
+ public void Validate_HydraulicBoundaryLocationNotPartOfLinkedHydraulicBoundaryData_ThrowsArgumentException()
+ {
+ // Setup
+ var hydraulicBoundaryData = new HydraulicBoundaryData
+ {
+ HydraulicLocationConfigurationDatabase =
+ {
+ FilePath = Path.Combine(testDataPath, "hlcd.sqlite")
+ }
+ };
+
+ // Call
+ void Call() => HydraulicBoundaryDataConnectionValidator.Validate(hydraulicBoundaryData, new TestHydraulicBoundaryLocation());
+
+ // Assert
+ string message = Assert.Throws(Call).Message;
+ Assert.AreEqual("'hydraulicBoundaryLocation' is not part of 'hydraulicBoundaryData'.", message);
+ }
+
+ [Test]
public void Validate_HydraulicBoundaryDataLinkedToNotExistingDatabaseFile_ReturnsErrorMessage()
{
// Setup
+ var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation();
+
var hydraulicBoundaryData = new HydraulicBoundaryData
{
- FilePath = "I_do_not_exist.sqlite"
+ HydraulicLocationConfigurationDatabase =
+ {
+ FilePath = Path.Combine(testDataPath, "hlcd.sqlite")
+ },
+ HydraulicBoundaryDatabases =
+ {
+ new HydraulicBoundaryDatabase
+ {
+ FilePath = "I_do_not_exist.sqlite",
+ Locations =
+ {
+ hydraulicBoundaryLocation
+ }
+ }
+ }
};
// Call
- string message = HydraulicBoundaryDataConnectionValidator.Validate(hydraulicBoundaryData, new TestHydraulicBoundaryLocation());
+ string message = HydraulicBoundaryDataConnectionValidator.Validate(hydraulicBoundaryData, hydraulicBoundaryLocation);
// Assert
const string expectedMessage = "Herstellen van de verbinding met de hydraulische belastingendatabase is mislukt. Fout bij het lezen van bestand 'I_do_not_exist.sqlite': het bestand bestaat niet.";
@@ -90,18 +126,30 @@
public void Validate_HydraulicBoundaryDataLinkedToExistingDatabaseFileWithoutSettings_ReturnsErrorMessage()
{
// Setup
+ var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation();
+
string invalidSettingsSchemaPath = Path.Combine(testDataPath, "invalidSettingsSchema");
var hydraulicBoundaryData = new HydraulicBoundaryData
{
- FilePath = Path.Combine(invalidSettingsSchemaPath, "complete.sqlite"),
HydraulicLocationConfigurationDatabase =
{
FilePath = Path.Combine(invalidSettingsSchemaPath, "hlcd.sqlite")
+ },
+ HydraulicBoundaryDatabases =
+ {
+ new HydraulicBoundaryDatabase
+ {
+ FilePath = Path.Combine(invalidSettingsSchemaPath, "complete.sqlite"),
+ Locations =
+ {
+ hydraulicBoundaryLocation
+ }
+ }
}
};
// Call
- string message = HydraulicBoundaryDataConnectionValidator.Validate(hydraulicBoundaryData, new TestHydraulicBoundaryLocation());
+ string message = HydraulicBoundaryDataConnectionValidator.Validate(hydraulicBoundaryData, hydraulicBoundaryLocation);
// Assert
const string expectedMessage = "Herstellen van de verbinding met de hydraulische belastingendatabase is mislukt. De rekeninstellingen database heeft niet het juiste schema.";
@@ -112,19 +160,31 @@
public void Validate_UsePreprocessorClosureTrueWithoutPreprocessorClosureDatabase_ReturnsMessageWithError()
{
// Setup
+ var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation();
+
string withoutPreprocessorClosurePath = Path.Combine(testDataPath, "withoutPreprocessorClosure");
var hydraulicBoundaryData = new HydraulicBoundaryData
{
- FilePath = Path.Combine(withoutPreprocessorClosurePath, "complete.sqlite"),
HydraulicLocationConfigurationDatabase =
{
FilePath = Path.Combine(withoutPreprocessorClosurePath, "hlcd.sqlite"),
UsePreprocessorClosure = true
+ },
+ HydraulicBoundaryDatabases =
+ {
+ new HydraulicBoundaryDatabase
+ {
+ FilePath = Path.Combine(withoutPreprocessorClosurePath, "complete.sqlite"),
+ Locations =
+ {
+ hydraulicBoundaryLocation
+ }
+ }
}
};
// Call
- string message = HydraulicBoundaryDataConnectionValidator.Validate(hydraulicBoundaryData, new TestHydraulicBoundaryLocation());
+ string message = HydraulicBoundaryDataConnectionValidator.Validate(hydraulicBoundaryData, hydraulicBoundaryLocation);
// Assert
string preprocessorClosureFilePath = Path.Combine(testDataPath, "withoutPreprocessorClosure", "hlcd_preprocClosure.sqlite");
@@ -138,18 +198,30 @@
public void Validate_HydraulicBoundaryDataLinkedToValidDatabaseFile_ReturnsNull(bool usePreprocessorClosure)
{
// Setup
+ var hydraulicBoundaryLocation = new TestHydraulicBoundaryLocation();
+
var hydraulicBoundaryData = new HydraulicBoundaryData
{
- FilePath = Path.Combine(testDataPath, "complete.sqlite"),
HydraulicLocationConfigurationDatabase =
{
FilePath = Path.Combine(testDataPath, "hlcd.sqlite"),
UsePreprocessorClosure = usePreprocessorClosure
+ },
+ HydraulicBoundaryDatabases =
+ {
+ new HydraulicBoundaryDatabase
+ {
+ FilePath = Path.Combine(testDataPath, "complete.sqlite"),
+ Locations =
+ {
+ hydraulicBoundaryLocation
+ }
+ }
}
};
// Call
- string message = HydraulicBoundaryDataConnectionValidator.Validate(hydraulicBoundaryData, new TestHydraulicBoundaryLocation());
+ string message = HydraulicBoundaryDataConnectionValidator.Validate(hydraulicBoundaryData, hydraulicBoundaryLocation);
// Assert
Assert.IsNull(message);