Index: Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/Handlers/FailureMechanismContributionNormChangeHandlerTest.cs =================================================================== diff -u -rc0532d07766ecad2566f7cfa4a97a9aeb6e8540c -r8079ca30223c65e0ff278bd6cf0b77aa40412325 --- Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/Handlers/FailureMechanismContributionNormChangeHandlerTest.cs (.../FailureMechanismContributionNormChangeHandlerTest.cs) (revision c0532d07766ecad2566f7cfa4a97a9aeb6e8540c) +++ Ringtoets/Integration/test/Ringtoets.Integration.Plugin.Test/Handlers/FailureMechanismContributionNormChangeHandlerTest.cs (.../FailureMechanismContributionNormChangeHandlerTest.cs) (revision 8079ca30223c65e0ff278bd6cf0b77aa40412325) @@ -158,16 +158,13 @@ CollectionAssert.IsEmpty(assessmentSection.GetFailureMechanisms().SelectMany(fm => fm.Calculations).Where(c => c.HasOutput), "There should be no calculations with output."); - foreach (HydraulicBoundaryLocation location in assessmentSection.HydraulicBoundaryDatabase.Locations - .Concat(assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations)) - { - Assert.IsFalse(location.DesignWaterLevelCalculation1.HasOutput); - Assert.IsFalse(location.WaveHeightCalculation1.HasOutput); - } + AssertHydraulicBoundaryLocationOutput(assessmentSection, false); + foreach (DuneLocation duneLocation in assessmentSection.DuneErosion.DuneLocations) { Assert.IsNull(duneLocation.Calculation.Output); } + CollectionAssert.AreEquivalent(expectedAffectedObjects, affectedObjects); } @@ -203,16 +200,13 @@ // Assert TestHelper.AssertLogMessageIsGenerated(call, "Alle berekende resultaten voor alle hydraulische randvoorwaardenlocaties zijn verwijderd.", 1); - foreach (HydraulicBoundaryLocation location in assessmentSection.HydraulicBoundaryDatabase.Locations - .Concat(assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations)) - { - Assert.IsFalse(location.DesignWaterLevelCalculation1.HasOutput); - Assert.IsFalse(location.WaveHeightCalculation1.HasOutput); - } + AssertHydraulicBoundaryLocationOutput(assessmentSection, false); + foreach (DuneLocation duneLocation in assessmentSection.DuneErosion.DuneLocations) { Assert.IsNull(duneLocation.Calculation.Output); } + CollectionAssert.AreEquivalent(expectedAffectedObjects, affectedObjects); } @@ -297,12 +291,9 @@ // Assert Assert.AreEqual(0, propertySet); - foreach (HydraulicBoundaryLocation location in assessmentSection.HydraulicBoundaryDatabase.Locations - .Concat(assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations)) - { - Assert.IsTrue(location.DesignWaterLevelCalculation1.HasOutput); - Assert.IsTrue(location.WaveHeightCalculation1.HasOutput); - } + + AssertHydraulicBoundaryLocationOutput(assessmentSection, true); + Assert.IsNotNull(assessmentSection.DuneErosion.DuneLocations[1].Calculation.Output); CollectionAssert.IsEmpty(affectedObjects); } @@ -328,5 +319,26 @@ var exception = Assert.Throws(test); Assert.AreSame(expectedException, exception); } + + private static void AssertHydraulicBoundaryLocationOutput(AssessmentSection assessmentSection, bool hasOutput) + { + foreach (HydraulicBoundaryLocation location in assessmentSection.HydraulicBoundaryDatabase.Locations) + { + Assert.AreEqual(hasOutput, location.DesignWaterLevelCalculation1.HasOutput); + Assert.AreEqual(hasOutput, location.DesignWaterLevelCalculation2.HasOutput); + Assert.AreEqual(hasOutput, location.DesignWaterLevelCalculation3.HasOutput); + Assert.AreEqual(hasOutput, location.DesignWaterLevelCalculation4.HasOutput); + Assert.AreEqual(hasOutput, location.WaveHeightCalculation1.HasOutput); + Assert.AreEqual(hasOutput, location.WaveHeightCalculation2.HasOutput); + Assert.AreEqual(hasOutput, location.WaveHeightCalculation3.HasOutput); + Assert.AreEqual(hasOutput, location.WaveHeightCalculation4.HasOutput); + } + + foreach (HydraulicBoundaryLocation location in assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations) + { + Assert.AreEqual(hasOutput, location.DesignWaterLevelCalculation1.HasOutput); + Assert.AreEqual(hasOutput, location.WaveHeightCalculation1.HasOutput); + } + } } } \ No newline at end of file Index: Ringtoets/Integration/test/Ringtoets.Integration.TestUtil.Test/TestDataGeneratorTest.cs =================================================================== diff -u -rc0532d07766ecad2566f7cfa4a97a9aeb6e8540c -r8079ca30223c65e0ff278bd6cf0b77aa40412325 --- Ringtoets/Integration/test/Ringtoets.Integration.TestUtil.Test/TestDataGeneratorTest.cs (.../TestDataGeneratorTest.cs) (revision c0532d07766ecad2566f7cfa4a97a9aeb6e8540c) +++ Ringtoets/Integration/test/Ringtoets.Integration.TestUtil.Test/TestDataGeneratorTest.cs (.../TestDataGeneratorTest.cs) (revision 8079ca30223c65e0ff278bd6cf0b77aa40412325) @@ -27,6 +27,7 @@ using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Common.Data.Hydraulics; using Ringtoets.Common.Data.Structures; using Ringtoets.DuneErosion.Data; using Ringtoets.GrassCoverErosionInwards.Data; @@ -55,8 +56,7 @@ // Assert Assert.AreEqual(AssessmentSectionComposition.Dike, assessmentSection.Composition); AssertFailureMechanismsHaveAllPossibleCalculationConfigurations(assessmentSection); - Assert.True(assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations.All(loc => loc.DesignWaterLevelCalculation1.HasOutput - && loc.WaveHeightCalculation1.HasOutput)); + AssertHydraulicBoundaryLocationOutput(assessmentSection, true); DuneErosionFailureMechanism duneErosionFailureMechanism = assessmentSection.GetFailureMechanisms() .OfType() @@ -78,8 +78,7 @@ // Assert Assert.AreEqual(composition, assessmentSection.Composition); AssertFailureMechanismsHaveAllPossibleCalculationConfigurations(assessmentSection); - Assert.True(assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations.All(loc => loc.DesignWaterLevelCalculation1.HasOutput - && loc.WaveHeightCalculation1.HasOutput)); + AssertHydraulicBoundaryLocationOutput(assessmentSection, true); DuneErosionFailureMechanism duneErosionFailureMechanism = assessmentSection.GetFailureMechanisms() .OfType() @@ -97,8 +96,7 @@ // Assert Assert.AreEqual(AssessmentSectionComposition.Dike, assessmentSection.Composition); AssertFailureMechanismsHaveAllPossibleCalculationConfigurations(assessmentSection); - Assert.True(assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations.All(loc => !(loc.DesignWaterLevelCalculation1.HasOutput - && loc.WaveHeightCalculation1.HasOutput))); + AssertHydraulicBoundaryLocationOutput(assessmentSection, false); Assert.True(assessmentSection.DuneErosion.DuneLocations.All(dl => dl.Calculation.Output == null)); } @@ -115,8 +113,7 @@ // Assert Assert.AreEqual(composition, assessmentSection.Composition); AssertFailureMechanismsHaveAllPossibleCalculationConfigurations(assessmentSection); - Assert.True(assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations.All(loc => !(loc.DesignWaterLevelCalculation1.HasOutput - && loc.WaveHeightCalculation1.HasOutput))); + AssertHydraulicBoundaryLocationOutput(assessmentSection, false); Assert.True(assessmentSection.DuneErosion.DuneLocations.All(dl => dl.Calculation.Output == null)); } @@ -130,8 +127,7 @@ Assert.AreEqual(AssessmentSectionComposition.Dike, assessmentSection.Composition); AssertFailureMechanismsHaveAllCalculationConfigurationsWithoutCalculationOutputs(assessmentSection); Assert.False(assessmentSection.GetFailureMechanisms().SelectMany(fm => fm.Calculations).All(calc => calc.HasOutput)); - Assert.True(assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations.All(loc => loc.DesignWaterLevelCalculation1.HasOutput - && loc.WaveHeightCalculation1.HasOutput)); + AssertHydraulicBoundaryLocationOutput(assessmentSection, true); DuneErosionFailureMechanism duneErosionFailureMechanism = assessmentSection.GetFailureMechanisms() .OfType() @@ -154,8 +150,7 @@ Assert.AreEqual(composition, assessmentSection.Composition); AssertFailureMechanismsHaveAllCalculationConfigurationsWithoutCalculationOutputs(assessmentSection); Assert.False(assessmentSection.GetFailureMechanisms().SelectMany(fm => fm.Calculations).All(calc => calc.HasOutput)); - Assert.True(assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations.All(loc => loc.DesignWaterLevelCalculation1.HasOutput - && loc.WaveHeightCalculation1.HasOutput)); + AssertHydraulicBoundaryLocationOutput(assessmentSection, true); DuneErosionFailureMechanism duneErosionFailureMechanism = assessmentSection.GetFailureMechanisms() .OfType() @@ -164,6 +159,26 @@ AssertDuneErosionFailureMechanismCalculationConfigurationsWithOutputs(duneErosionFailureMechanism); } + private static void AssertHydraulicBoundaryLocationOutput(AssessmentSection assessmentSection, bool hasOutput) + { + foreach (HydraulicBoundaryLocation location in assessmentSection.HydraulicBoundaryDatabase.Locations) + { + Assert.AreEqual(hasOutput, location.DesignWaterLevelCalculation1.HasOutput); + Assert.AreEqual(hasOutput, location.DesignWaterLevelCalculation2.HasOutput); + Assert.AreEqual(hasOutput, location.DesignWaterLevelCalculation3.HasOutput); + Assert.AreEqual(hasOutput, location.DesignWaterLevelCalculation4.HasOutput); + Assert.AreEqual(hasOutput, location.WaveHeightCalculation1.HasOutput); + Assert.AreEqual(hasOutput, location.WaveHeightCalculation2.HasOutput); + Assert.AreEqual(hasOutput, location.WaveHeightCalculation3.HasOutput); + Assert.AreEqual(hasOutput, location.WaveHeightCalculation4.HasOutput); + } + + foreach (HydraulicBoundaryLocation location in assessmentSection.GrassCoverErosionOutwards.HydraulicBoundaryLocations) + { + Assert.AreEqual(hasOutput, location.DesignWaterLevelCalculation1.HasOutput); + Assert.AreEqual(hasOutput, location.WaveHeightCalculation1.HasOutput); + } + } private static void AssertFailureMechanismsHaveAllPossibleCalculationConfigurations(IAssessmentSection assessmentSection) { var containsClosingStructuresFailureMechanism = false; Index: Ringtoets/Integration/test/Ringtoets.Integration.TestUtil/TestDataGenerator.cs =================================================================== diff -u -r86a27f942ae8ab4b5d9e29b7eaed63db0e8cc1e7 -r8079ca30223c65e0ff278bd6cf0b77aa40412325 --- Ringtoets/Integration/test/Ringtoets.Integration.TestUtil/TestDataGenerator.cs (.../TestDataGenerator.cs) (revision 86a27f942ae8ab4b5d9e29b7eaed63db0e8cc1e7) +++ Ringtoets/Integration/test/Ringtoets.Integration.TestUtil/TestDataGenerator.cs (.../TestDataGenerator.cs) (revision 8079ca30223c65e0ff278bd6cf0b77aa40412325) @@ -52,26 +52,47 @@ public static class TestDataGenerator { /// - /// Gets a fully configured with a desired - /// and with all possible configurations for the parent and nested calculations of the failure mechanisms. + /// Gets a fully configured with a desired and + /// with all possible configurations for the parent and nested calculations of the failure mechanisms. /// /// The desired to initialize the with. - /// A fully configured with all possible configurations of - /// the parent and nested calculation inside the failure mechanisms. + /// The configured . public static AssessmentSection GetAssessmentSectionWithAllCalculationConfigurations( AssessmentSectionComposition composition = AssessmentSectionComposition.Dike) { var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, string.Empty, 0, 0) { DesignWaterLevelCalculation1 = { - Output = new HydraulicBoundaryLocationOutput( - 1.1, double.NaN, double.NaN, double.NaN, double.NaN, CalculationConvergence.CalculatedConverged, null) + Output = new TestHydraulicBoundaryLocationOutput(1.1, CalculationConvergence.CalculatedConverged) }, + DesignWaterLevelCalculation2 = + { + Output = new TestHydraulicBoundaryLocationOutput(2.2, CalculationConvergence.CalculatedConverged) + }, + DesignWaterLevelCalculation3 = + { + Output = new TestHydraulicBoundaryLocationOutput(3.3, CalculationConvergence.CalculatedConverged) + }, + DesignWaterLevelCalculation4 = + { + Output = new TestHydraulicBoundaryLocationOutput(4.4, CalculationConvergence.CalculatedConverged) + }, WaveHeightCalculation1 = { - Output = new HydraulicBoundaryLocationOutput( - 2.2, double.NaN, double.NaN, double.NaN, double.NaN, CalculationConvergence.CalculatedConverged, null) + Output = new TestHydraulicBoundaryLocationOutput(5.5, CalculationConvergence.CalculatedConverged) + }, + WaveHeightCalculation2 = + { + Output = new TestHydraulicBoundaryLocationOutput(6.6, CalculationConvergence.CalculatedConverged) + }, + WaveHeightCalculation3 = + { + Output = new TestHydraulicBoundaryLocationOutput(7.7, CalculationConvergence.CalculatedConverged) + }, + WaveHeightCalculation4 = + { + Output = new TestHydraulicBoundaryLocationOutput(8.8, CalculationConvergence.CalculatedConverged) } }; @@ -102,15 +123,12 @@ } /// - /// Gets a fully configured with a desired and - /// possible configurations of the parent and nested calculations, but without the output of the - /// , - /// and . + /// Gets a fully configured with a desired and + /// with all possible configurations of the parent and nested calculations, but without design water level output, + /// wave height output and dune erosion output. /// /// The desired to initialize the with. - /// A fully configured with all possible calculation configurations of the parent and - /// nested calculations inside the failure mechanisms, but without the output of the , - /// and . + /// The configured . public static AssessmentSection GetAssessmentSectionWithAllCalculationConfigurationsWithoutHydraulicBoundaryLocationAndDuneOutput( AssessmentSectionComposition composition = AssessmentSectionComposition.Dike) { @@ -121,12 +139,12 @@ } /// - /// Gets a fully configured with a desired and - /// possible configurations of the parent and nested calculations, but without any calculation output of the failure mechanisms. + /// Gets a fully configured with a desired and + /// with all possible configurations of the parent and nested calculations, but without any calculation output of the + /// failure mechanisms. /// /// The desired to initialize the with. - /// A fully configured with all possible configurations of the parent and nested calculations - /// of the failure mechanisms, but without any calculation output. + /// The configured . public static AssessmentSection GetAssessmentSectionWithAllCalculationConfigurationsWithoutCalculationOutput( AssessmentSectionComposition composition = AssessmentSectionComposition.Dike) {