Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.IO.Test/Configurations/MacroStabilityInwardsCalculationConfigurationImporterTest.cs =================================================================== diff -u -r07783a47e1cfb0bd793eaba29c7567cb17e0b367 -r214457ab765b5adc9c4b6df04e34f97ebe11fb8e --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.IO.Test/Configurations/MacroStabilityInwardsCalculationConfigurationImporterTest.cs (.../MacroStabilityInwardsCalculationConfigurationImporterTest.cs) (revision 07783a47e1cfb0bd793eaba29c7567cb17e0b367) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.IO.Test/Configurations/MacroStabilityInwardsCalculationConfigurationImporterTest.cs (.../MacroStabilityInwardsCalculationConfigurationImporterTest.cs) (revision 214457ab765b5adc9c4b6df04e34f97ebe11fb8e) @@ -38,9 +38,12 @@ [TestFixture] public class MacroStabilityInwardsCalculationConfigurationImporterTest { - private readonly string readerPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.MacroStabilityInwards.IO, nameof(MacroStabilityInwardsCalculationConfigurationReader)); - private readonly string importerPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.MacroStabilityInwards.IO, nameof(MacroStabilityInwardsCalculationConfigurationImporter)); + private readonly string readerPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.MacroStabilityInwards.IO, + nameof(MacroStabilityInwardsCalculationConfigurationReader)); + private readonly string importerPath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.MacroStabilityInwards.IO, + nameof(MacroStabilityInwardsCalculationConfigurationImporter)); + [Test] public void Constructor_ExpectedValues() { @@ -277,6 +280,94 @@ } [Test] + public void Import_ScenarioEmpty_LogMessageAndContinueImport() + { + // Setup + string filePath = Path.Combine(importerPath, "validConfigurationCalculationContainingEmptyScenario.xml"); + + var calculationGroup = new CalculationGroup(); + + var pipingFailureMechanism = new MacroStabilityInwardsFailureMechanism(); + + var importer = new MacroStabilityInwardsCalculationConfigurationImporter(filePath, + calculationGroup, + Enumerable.Empty(), + pipingFailureMechanism); + + // Call + var successful = false; + Action call = () => successful = importer.Import(); + + // Assert + const string expectedMessage = "Er is voor scenario geen contributie of relevantie opgegeven. Berekening 'Calculation' is overgeslagen."; + TestHelper.AssertLogMessageIsGenerated(call, expectedMessage, 1); + Assert.IsTrue(successful); + CollectionAssert.IsEmpty(calculationGroup.Children); + } + + [Test] + public void Import_ScenarioWithContributionSet_DataAddedToModel() + { + // Setup + string filePath = Path.Combine(importerPath, "validConfigurationScenarioContributionOnly.xml"); + + var calculationGroup = new CalculationGroup(); + + var pipingFailureMechanism = new MacroStabilityInwardsFailureMechanism(); + + var importer = new MacroStabilityInwardsCalculationConfigurationImporter(filePath, + calculationGroup, + Enumerable.Empty(), + pipingFailureMechanism); + + // Call + bool successful = importer.Import(); + + // Assert + Assert.IsTrue(successful); + + var expectedCalculation = new MacroStabilityInwardsCalculationScenario(new GeneralMacroStabilityInwardsInput()) + { + Name = "Calculation", + Contribution = (RoundedDouble) 8.8 + }; + + Assert.AreEqual(1, calculationGroup.Children.Count); + AssertMacroStabilityInwardsCalculationScenario(expectedCalculation, (MacroStabilityInwardsCalculationScenario) calculationGroup.Children[0]); + } + + [Test] + public void Import_ScenarioWithRevelantSet_DataAddedToModel() + { + // Setup + string filePath = Path.Combine(importerPath, "validConfigurationScenarioRevelantOnly.xml"); + + var calculationGroup = new CalculationGroup(); + + var pipingFailureMechanism = new MacroStabilityInwardsFailureMechanism(); + + var importer = new MacroStabilityInwardsCalculationConfigurationImporter(filePath, + calculationGroup, + Enumerable.Empty(), + pipingFailureMechanism); + + // Call + bool successful = importer.Import(); + + // Assert + Assert.IsTrue(successful); + + var expectedCalculation = new MacroStabilityInwardsCalculationScenario(new GeneralMacroStabilityInwardsInput()) + { + Name = "Calculation", + IsRelevant = false + }; + + Assert.AreEqual(1, calculationGroup.Children.Count); + AssertMacroStabilityInwardsCalculationScenario(expectedCalculation, (MacroStabilityInwardsCalculationScenario) calculationGroup.Children[0]); + } + + [Test] [TestCase(false, "validConfigurationFullCalculationContainingHydraulicBoundaryLocation.xml")] [TestCase(true, "validConfigurationFullCalculationContainingAssessmentLevel.xml")] public void Import_ValidConfigurationWithValidHydraulicBoundaryData_DataAddedToModel(bool manualAssessmentLevel, string file) @@ -346,7 +437,9 @@ SurfaceLine = surfaceLine, StochasticSoilModel = stochasticSoilModel, StochasticSoilProfile = stochasticSoilProfile - } + }, + IsRelevant = false, + Contribution = (RoundedDouble) 8.8 }; if (manualAssessmentLevel) { @@ -357,7 +450,8 @@ AssertMacroStabilityInwardsCalculationScenario(expectedCalculation, (MacroStabilityInwardsCalculationScenario) calculationGroup.Children[0]); } - private static void AssertMacroStabilityInwardsCalculationScenario(MacroStabilityInwardsCalculationScenario expectedCalculation, MacroStabilityInwardsCalculationScenario actualCalculation) + private static void AssertMacroStabilityInwardsCalculationScenario(MacroStabilityInwardsCalculationScenario expectedCalculation, + MacroStabilityInwardsCalculationScenario actualCalculation) { Assert.AreEqual(expectedCalculation.Name, actualCalculation.Name); Assert.AreEqual(expectedCalculation.InputParameters.UseAssessmentLevelManualInput, actualCalculation.InputParameters.UseAssessmentLevelManualInput); @@ -372,6 +466,9 @@ Assert.AreSame(expectedCalculation.InputParameters.SurfaceLine, actualCalculation.InputParameters.SurfaceLine); Assert.AreSame(expectedCalculation.InputParameters.StochasticSoilModel, actualCalculation.InputParameters.StochasticSoilModel); Assert.AreSame(expectedCalculation.InputParameters.StochasticSoilProfile, actualCalculation.InputParameters.StochasticSoilProfile); + + Assert.AreEqual(expectedCalculation.IsRelevant, actualCalculation.IsRelevant); + Assert.AreEqual(expectedCalculation.Contribution, actualCalculation.Contribution); } } } \ No newline at end of file