Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Importers/PipingConfigurationImporter.cs
===================================================================
diff -u -rb7f9c9f43aac18c45ea1932f4559a29eda7fbe34 -ref93d030dc8400084c8e53058f072d096ff6217a
--- Ringtoets/Piping/src/Ringtoets.Piping.IO/Importers/PipingConfigurationImporter.cs (.../PipingConfigurationImporter.cs) (revision b7f9c9f43aac18c45ea1932f4559a29eda7fbe34)
+++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Importers/PipingConfigurationImporter.cs (.../PipingConfigurationImporter.cs) (revision ef93d030dc8400084c8e53058f072d096ff6217a)
@@ -177,7 +177,7 @@
ReadStochasticSoilModel(readCalculation, pipingCalculation);
ReadStochastics(readCalculation, pipingCalculation);
}
- catch (CriticalFileValidationException e)
+ catch (Exception e) when (e is CriticalFileValidationException || e is ArgumentOutOfRangeException)
{
log.ErrorFormat(Resources.PipingConfigurationImporter_ValidateCalculation_Error_message_0_calculation_1_skipped, e.Message, readCalculation.Name);
return null;
@@ -212,7 +212,7 @@
else if (readCalculation.AssessmentLevel.HasValue)
{
pipingCalculation.InputParameters.UseAssessmentLevelManualInput = true;
- pipingCalculation.InputParameters.AssessmentLevel = (RoundedDouble)readCalculation.AssessmentLevel.Value;
+ pipingCalculation.InputParameters.AssessmentLevel = (RoundedDouble) readCalculation.AssessmentLevel.Value;
}
}
@@ -241,16 +241,17 @@
}
}
}
+
private static void ReadEntryExitPoint(ReadPipingCalculation readCalculation, PipingCalculationScenario pipingCalculation)
{
if (readCalculation.EntryPointL.HasValue)
{
- pipingCalculation.InputParameters.EntryPointL = (RoundedDouble)readCalculation.EntryPointL.Value;
+ pipingCalculation.InputParameters.EntryPointL = (RoundedDouble) readCalculation.EntryPointL.Value;
}
if (readCalculation.ExitPointL.HasValue)
{
- pipingCalculation.InputParameters.ExitPointL = (RoundedDouble)readCalculation.ExitPointL.Value;
+ pipingCalculation.InputParameters.ExitPointL = (RoundedDouble) readCalculation.ExitPointL.Value;
}
}
@@ -332,17 +333,17 @@
{
pipingCalculation.InputParameters.DampingFactorExit = new LogNormalDistribution
{
- Mean = (RoundedDouble)readCalculation.DampingFactorExitMean.Value,
- StandardDeviation = (RoundedDouble)readCalculation.DampingFactorExitStandardDeviation.Value
+ Mean = (RoundedDouble) readCalculation.DampingFactorExitMean.Value,
+ StandardDeviation = (RoundedDouble) readCalculation.DampingFactorExitStandardDeviation.Value
};
}
if (readCalculation.PhreaticLevelExitMean.HasValue && readCalculation.PhreaticLevelExitStandardDeviation.HasValue)
{
pipingCalculation.InputParameters.PhreaticLevelExit = new NormalDistribution
{
- Mean = (RoundedDouble)readCalculation.PhreaticLevelExitMean.Value,
- StandardDeviation = (RoundedDouble)readCalculation.PhreaticLevelExitStandardDeviation.Value
+ Mean = (RoundedDouble) readCalculation.PhreaticLevelExitMean.Value,
+ StandardDeviation = (RoundedDouble) readCalculation.PhreaticLevelExitStandardDeviation.Value
};
}
}
Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Importers/PipingConfigurationImporterTest.cs
===================================================================
diff -u -ref8341b9d75b82a9c652f5c2ef0c4108252c5fb8 -ref93d030dc8400084c8e53058f072d096ff6217a
--- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Importers/PipingConfigurationImporterTest.cs (.../PipingConfigurationImporterTest.cs) (revision ef8341b9d75b82a9c652f5c2ef0c4108252c5fb8)
+++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Importers/PipingConfigurationImporterTest.cs (.../PipingConfigurationImporterTest.cs) (revision ef93d030dc8400084c8e53058f072d096ff6217a)
@@ -45,8 +45,13 @@
{
get
{
- yield return new TestCaseData("validConfigurationNesting.xml", GetNestedData());
- yield return new TestCaseData("validConfigurationCalculationContainingNaNs.xml", GetNaNData());
+ yield return new TestCaseData("validConfigurationNesting.xml",
+ GetNestedData())
+ .SetName("validConfigurationNesting");
+
+ yield return new TestCaseData("validConfigurationCalculationContainingNaNs.xml",
+ GetNaNData())
+ .SetName("validConfigurationCalculationContainingNaNs");
}
}
@@ -155,11 +160,76 @@
Assert.AreEqual(1, msgs.Length);
StringAssert.StartsWith($"Fout bij het lezen van bestand '{filePath}': het XML-document dat de configuratie voor de berekeningen beschrijft is niet geldig.", msgs[0]);
});
-
+
Assert.IsFalse(importSuccesful);
}
[Test]
+ [TestCase("validConfigurationInvalidEntryExitPoint.xml", "Het uittredepunt moet landwaarts van het intredepunt liggen.")]
+ [TestCase("validConfigurationExitPointNotOnSurfaceLine.xml", "Het gespecificeerde punt moet op het profiel liggen (bereik [0.0, 10.0]).")]
+ public void Import_EntryExitPointNotValid_LogMessageAndContinueImport(string file, string expectedErrorMessage)
+ {
+ // Setup
+ string filePath = Path.Combine(path, file);
+
+ var calculationGroup = new CalculationGroup();
+ var surfaceLine = new RingtoetsPipingSurfaceLine
+ {
+ Name = "Profielschematisatie"
+ };
+ surfaceLine.SetGeometry(new[]
+ {
+ new Point3D(3.0, 5.0, 0.0),
+ new Point3D(3.0, 0.0, 1.0),
+ new Point3D(3.0, -5.0, 0.0)
+ });
+ var stochasticSoilProfile = new StochasticSoilProfile(0, SoilProfileType.SoilProfile1D, 1)
+ {
+ SoilProfile = new PipingSoilProfile("Ondergrondschematisatie", 0, new[]
+ {
+ new PipingSoilLayer(0)
+ }, SoilProfileType.SoilProfile1D, 0)
+ };
+
+ var stochasticSoilModel = new StochasticSoilModel(1, "Ondergrondmodel", "Segment");
+ stochasticSoilModel.StochasticSoilProfiles.Add(stochasticSoilProfile);
+ stochasticSoilModel.Geometry.AddRange(new[]
+ {
+ new Point2D(1.0, 0.0),
+ new Point2D(5.0, 0.0)
+ });
+
+ var pipingFailureMechanism = new PipingFailureMechanism();
+ pipingFailureMechanism.SurfaceLines.AddRange(new[]
+ {
+ surfaceLine
+ }, "path");
+ pipingFailureMechanism.StochasticSoilModels.AddRange(new[]
+ {
+ stochasticSoilModel
+ }, "path");
+
+ var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "HRlocatie", 10, 20);
+ var importer = new PipingConfigurationImporter(filePath,
+ calculationGroup,
+ new[]
+ {
+ hydraulicBoundaryLocation
+ },
+ pipingFailureMechanism);
+
+ // Call
+ bool succesful = false;
+ Action call = () => succesful = importer.Import();
+
+ // Assert
+ string expectedMessage = $"{expectedErrorMessage} Berekening 'Calculation' is overgeslagen.";
+ TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1);
+ Assert.IsTrue(succesful);
+ CollectionAssert.IsEmpty(calculationGroup.Children);
+ }
+
+ [Test]
[TestCase("Inlezen")]
[TestCase("Valideren")]
public void Import_CancelingImport_CancelImportAndLog(string expectedProgressMessage)
Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationReader/validConfigurationExitPointNotOnSurfaceLine.xml
===================================================================
diff -u
--- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationReader/validConfigurationExitPointNotOnSurfaceLine.xml (revision 0)
+++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationReader/validConfigurationExitPointNotOnSurfaceLine.xml (revision ef93d030dc8400084c8e53058f072d096ff6217a)
@@ -0,0 +1,21 @@
+
+
+
+ 1.1
+ Profielschematisatie
+ 2.2
+ 200.2
+ Ondergrondmodel
+ Ondergrondschematisatie
+
+
+ 4.4
+ 5.5
+
+
+ 6.6
+ 7.7
+
+
+
+
\ No newline at end of file
Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationReader/validConfigurationInvalidEntryExitPoint.xml
===================================================================
diff -u
--- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationReader/validConfigurationInvalidEntryExitPoint.xml (revision 0)
+++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingConfigurationReader/validConfigurationInvalidEntryExitPoint.xml (revision ef93d030dc8400084c8e53058f072d096ff6217a)
@@ -0,0 +1,21 @@
+
+
+
+ 1.1
+ Profielschematisatie
+ 3.3
+ 2.2
+ Ondergrondmodel
+ Ondergrondschematisatie
+
+
+ 4.4
+ 5.5
+
+
+ 6.6
+ 7.7
+
+
+
+
\ No newline at end of file