Index: Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/RingtoetsDataSynchronizationServiceTest.cs =================================================================== diff -u -r8ae9472037bcd029f6ad9d78784cedad999a2c68 -rfbdcde760eb5401367c8b922504819cd263d58a2 --- Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/RingtoetsDataSynchronizationServiceTest.cs (.../RingtoetsDataSynchronizationServiceTest.cs) (revision 8ae9472037bcd029f6ad9d78784cedad999a2c68) +++ Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/RingtoetsDataSynchronizationServiceTest.cs (.../RingtoetsDataSynchronizationServiceTest.cs) (revision fbdcde760eb5401367c8b922504819cd263d58a2) @@ -21,6 +21,7 @@ using System; using System.Collections.Generic; +using System.Linq; using Core.Common.Base.Data; using NUnit.Framework; using Rhino.Mocks; @@ -34,6 +35,8 @@ using Ringtoets.Integration.Data; using Ringtoets.Piping.Data; using Ringtoets.Piping.KernelWrapper.TestUtil; +using Ringtoets.Revetment.Data; +using Ringtoets.StabilityStoneCover.Data; namespace Ringtoets.Integration.Service.Test { @@ -55,22 +58,22 @@ public void ClearFailureMechanismCalculationOutputs_WithAssessmentSection_ClearsFailureMechanismCalculationsOutputAndReturnsAffectedCalculations() { // Setup - AssessmentSection assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); + var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); - PipingCalculation emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput()); - PipingCalculation pipingCalculation = new PipingCalculation(new GeneralPipingInput()) + var emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput()); + var pipingCalculation = new PipingCalculation(new GeneralPipingInput()) { Output = new TestPipingOutput() }; - GrassCoverErosionInwardsCalculation emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation(); - GrassCoverErosionInwardsCalculation grassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation + var emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation(); + var grassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation { Output = new GrassCoverErosionInwardsOutput(0, false, new ProbabilityAssessmentOutput(0, 0, 0, 0, 0), 0) }; - HeightStructuresCalculation emptyHeightStructuresCalculation = new HeightStructuresCalculation(); - HeightStructuresCalculation heightStructuresCalculation = new HeightStructuresCalculation + var emptyHeightStructuresCalculation = new HeightStructuresCalculation(); + var heightStructuresCalculation = new HeightStructuresCalculation { Output = new ProbabilityAssessmentOutput(0, 0, 0, 0, 0) }; @@ -101,12 +104,12 @@ public void ClearFailureMechanismCalculationOutputs_WithMultiplePipingFailureMechanisms_ClearsOutputAndReturnsAffectedItems() { // Setup - PipingFailureMechanism failureMechanism1 = new PipingFailureMechanism(); + var failureMechanism1 = new PipingFailureMechanism(); failureMechanism1.CalculationsGroup.Children.Add(new PipingCalculation(new GeneralPipingInput()) { Output = new TestPipingOutput() }); - PipingFailureMechanism failureMechanism2 = new PipingFailureMechanism(); + var failureMechanism2 = new PipingFailureMechanism(); failureMechanism2.CalculationsGroup.Children.Add(new PipingCalculation(new GeneralPipingInput()) { Output = new TestPipingOutput() @@ -141,12 +144,12 @@ public void ClearFailureMechanismCalculationOutputs_WithMultipleGrassCoverErosionInwardsFailureMechanisms_ClearsOutputAndReturnsAffectedCalculations() { // Setup - GrassCoverErosionInwardsFailureMechanism failureMechanism1 = new GrassCoverErosionInwardsFailureMechanism(); + var failureMechanism1 = new GrassCoverErosionInwardsFailureMechanism(); failureMechanism1.CalculationsGroup.Children.Add(new GrassCoverErosionInwardsCalculation { Output = new GrassCoverErosionInwardsOutput(0, false, new ProbabilityAssessmentOutput(0, 0, 0, 0, 0), 0) }); - GrassCoverErosionInwardsFailureMechanism failureMechanism2 = new GrassCoverErosionInwardsFailureMechanism(); + var failureMechanism2 = new GrassCoverErosionInwardsFailureMechanism(); failureMechanism2.CalculationsGroup.Children.Add(new GrassCoverErosionInwardsCalculation { Output = new GrassCoverErosionInwardsOutput(0, false, new ProbabilityAssessmentOutput(0, 0, 0, 0, 0), 0) @@ -181,12 +184,12 @@ public void ClearFailureMechanismCalculationOutputs_WithMultipleHeightStructuresFailureMechanisms_ClearsOutputAndReturnsAffectedCalculations() { // Setup - HeightStructuresFailureMechanism failureMechanism1 = new HeightStructuresFailureMechanism(); + var failureMechanism1 = new HeightStructuresFailureMechanism(); failureMechanism1.CalculationsGroup.Children.Add(new HeightStructuresCalculation { Output = new ProbabilityAssessmentOutput(0, 0, 0, 0, 0) }); - HeightStructuresFailureMechanism failureMechanism2 = new HeightStructuresFailureMechanism(); + var failureMechanism2 = new HeightStructuresFailureMechanism(); failureMechanism2.CalculationsGroup.Children.Add(new HeightStructuresCalculation { Output = new ProbabilityAssessmentOutput(0, 0, 0, 0, 0) @@ -232,11 +235,11 @@ public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_CalculationsWithHydraulicBoundaryLocationAndOutput_ClearsHydraulicBoundaryLocationAndCalculationsAndReturnsAffectedCalculations() { // Setup - AssessmentSection assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); + var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); - HydraulicBoundaryLocation hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "test", 0.0, 0.0); - PipingCalculation emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput()); - PipingCalculation pipingCalculation = new PipingCalculation(new GeneralPipingInput()) + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "test", 0.0, 0.0); + var emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput()); + var pipingCalculation = new PipingCalculation(new GeneralPipingInput()) { InputParameters = { @@ -245,8 +248,8 @@ Output = new TestPipingOutput() }; - GrassCoverErosionInwardsCalculation emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation(); - GrassCoverErosionInwardsCalculation grassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation + var emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation(); + var grassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation { InputParameters = { @@ -255,8 +258,8 @@ Output = new GrassCoverErosionInwardsOutput(0, false, new ProbabilityAssessmentOutput(0, 0, 0, 0, 0), 0) }; - HeightStructuresCalculation emptyHeightStructuresCalculation = new HeightStructuresCalculation(); - HeightStructuresCalculation heightStructuresCalculation = new HeightStructuresCalculation + var emptyHeightStructuresCalculation = new HeightStructuresCalculation(); + var heightStructuresCalculation = new HeightStructuresCalculation { InputParameters = { @@ -265,12 +268,24 @@ Output = new ProbabilityAssessmentOutput(0, 0, 0, 0, 0) }; + var emptyStabilityStoneCoverWaveConditionsCalculation = new StabilityStoneCoverWaveConditionsCalculation(); + var stabilityStoneCoverWaveConditionsCalculation = new StabilityStoneCoverWaveConditionsCalculation + { + InputParameters = + { + HydraulicBoundaryLocation = hydraulicBoundaryLocation + }, + Output = new StabilityStoneCoverWaveConditionsOutput(Enumerable.Empty(), Enumerable.Empty()) + }; + assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(emptyPipingCalculation); assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(pipingCalculation); assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(emptyGrassCoverErosionInwardsCalculation); assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(grassCoverErosionInwardsCalculation); assessmentSection.HeightStructures.CalculationsGroup.Children.Add(emptyHeightStructuresCalculation); assessmentSection.HeightStructures.CalculationsGroup.Children.Add(heightStructuresCalculation); + assessmentSection.StabilityStoneCover.WaveConditionsCalculationGroup.Children.Add(emptyStabilityStoneCoverWaveConditionsCalculation); + assessmentSection.StabilityStoneCover.WaveConditionsCalculationGroup.Children.Add(stabilityStoneCoverWaveConditionsCalculation); // Call IEnumerable affectedItems = RingtoetsDataSynchronizationService.ClearAllCalculationOutputAndHydraulicBoundaryLocations(assessmentSection); @@ -279,13 +294,16 @@ Assert.IsNull(pipingCalculation.InputParameters.HydraulicBoundaryLocation); Assert.IsNull(grassCoverErosionInwardsCalculation.InputParameters.HydraulicBoundaryLocation); Assert.IsNull(heightStructuresCalculation.InputParameters.HydraulicBoundaryLocation); + Assert.IsNull(stabilityStoneCoverWaveConditionsCalculation.InputParameters.HydraulicBoundaryLocation); Assert.IsNull(pipingCalculation.Output); Assert.IsNull(grassCoverErosionInwardsCalculation.Output); Assert.IsNull(heightStructuresCalculation.Output); + Assert.IsNull(stabilityStoneCoverWaveConditionsCalculation.Output); CollectionAssert.AreEqual(new ICalculation[] { pipingCalculation, grassCoverErosionInwardsCalculation, + stabilityStoneCoverWaveConditionsCalculation, heightStructuresCalculation }, affectedItems); } @@ -294,42 +312,53 @@ public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_CalculationsWithHydraulicBoundaryLocationNoOutput_ClearsHydraulicBoundaryLocationAndReturnsAffectedCalculations() { // Setup - AssessmentSection assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); + var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); - HydraulicBoundaryLocation hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "test", 0.0, 0.0); - PipingCalculation emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput()); - PipingCalculation pipingCalculation = new PipingCalculation(new GeneralPipingInput()) + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "test", 0.0, 0.0); + var emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput()); + var pipingCalculation = new PipingCalculation(new GeneralPipingInput()) { InputParameters = { HydraulicBoundaryLocation = hydraulicBoundaryLocation } }; - GrassCoverErosionInwardsCalculation emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation(); - GrassCoverErosionInwardsCalculation grassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation + var emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation(); + var grassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation { InputParameters = { HydraulicBoundaryLocation = hydraulicBoundaryLocation } }; - HeightStructuresCalculation emptyHeightStructuresCalculation = new HeightStructuresCalculation(); - HeightStructuresCalculation heightStructuresCalculation = new HeightStructuresCalculation + var emptyHeightStructuresCalculation = new HeightStructuresCalculation(); + var heightStructuresCalculation = new HeightStructuresCalculation { InputParameters = { HydraulicBoundaryLocation = hydraulicBoundaryLocation } }; + var emptyStabilityStoneCoverWaveConditionsCalculation = new StabilityStoneCoverWaveConditionsCalculation(); + var stabilityStoneCoverWaveConditionsCalculation = new StabilityStoneCoverWaveConditionsCalculation + { + InputParameters = + { + HydraulicBoundaryLocation = hydraulicBoundaryLocation + } + }; + assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(emptyPipingCalculation); assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(pipingCalculation); assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(emptyGrassCoverErosionInwardsCalculation); assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(grassCoverErosionInwardsCalculation); assessmentSection.HeightStructures.CalculationsGroup.Children.Add(emptyHeightStructuresCalculation); assessmentSection.HeightStructures.CalculationsGroup.Children.Add(heightStructuresCalculation); + assessmentSection.StabilityStoneCover.WaveConditionsCalculationGroup.Children.Add(emptyStabilityStoneCoverWaveConditionsCalculation); + assessmentSection.StabilityStoneCover.WaveConditionsCalculationGroup.Children.Add(stabilityStoneCoverWaveConditionsCalculation); // Call IEnumerable affectedItems = RingtoetsDataSynchronizationService.ClearAllCalculationOutputAndHydraulicBoundaryLocations(assessmentSection); @@ -338,10 +367,12 @@ Assert.IsNull(pipingCalculation.InputParameters.HydraulicBoundaryLocation); Assert.IsNull(grassCoverErosionInwardsCalculation.InputParameters.HydraulicBoundaryLocation); Assert.IsNull(heightStructuresCalculation.InputParameters.HydraulicBoundaryLocation); + Assert.IsNull(stabilityStoneCoverWaveConditionsCalculation.InputParameters.HydraulicBoundaryLocation); CollectionAssert.AreEqual(new ICalculation[] { pipingCalculation, grassCoverErosionInwardsCalculation, + stabilityStoneCoverWaveConditionsCalculation, heightStructuresCalculation }, affectedItems); } @@ -350,32 +381,40 @@ public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_CalculationsWithOutputAndNoHydraulicBoundaryLocation_ClearsOutputAndReturnsAffectedCalculations() { // Setup - AssessmentSection assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); + var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); - PipingCalculation emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput()); - PipingCalculation pipingCalculation = new PipingCalculation(new GeneralPipingInput()) + var emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput()); + var pipingCalculation = new PipingCalculation(new GeneralPipingInput()) { Output = new TestPipingOutput() }; - GrassCoverErosionInwardsCalculation emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation(); - GrassCoverErosionInwardsCalculation grassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation + var emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation(); + var grassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation { Output = new GrassCoverErosionInwardsOutput(0, false, new ProbabilityAssessmentOutput(0, 0, 0, 0, 0), 0) }; - HeightStructuresCalculation emptyHeightStructuresCalculation = new HeightStructuresCalculation(); - HeightStructuresCalculation heightStructuresCalculation = new HeightStructuresCalculation + var emptyHeightStructuresCalculation = new HeightStructuresCalculation(); + var heightStructuresCalculation = new HeightStructuresCalculation { Output = new ProbabilityAssessmentOutput(0, 0, 0, 0, 0) }; + var emptyStabilityStoneCoverWaveConditionsCalculation = new StabilityStoneCoverWaveConditionsCalculation(); + var stabilityStoneCoverWaveConditionsCalculation = new StabilityStoneCoverWaveConditionsCalculation + { + Output = new StabilityStoneCoverWaveConditionsOutput(Enumerable.Empty(), Enumerable.Empty()) + }; + assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(emptyPipingCalculation); assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(pipingCalculation); assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(emptyGrassCoverErosionInwardsCalculation); assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(grassCoverErosionInwardsCalculation); assessmentSection.HeightStructures.CalculationsGroup.Children.Add(emptyHeightStructuresCalculation); assessmentSection.HeightStructures.CalculationsGroup.Children.Add(heightStructuresCalculation); + assessmentSection.StabilityStoneCover.WaveConditionsCalculationGroup.Children.Add(emptyStabilityStoneCoverWaveConditionsCalculation); + assessmentSection.StabilityStoneCover.WaveConditionsCalculationGroup.Children.Add(stabilityStoneCoverWaveConditionsCalculation); // Call IEnumerable affectedItems = RingtoetsDataSynchronizationService.ClearAllCalculationOutputAndHydraulicBoundaryLocations(assessmentSection); @@ -384,15 +423,40 @@ Assert.IsNull(pipingCalculation.Output); Assert.IsNull(grassCoverErosionInwardsCalculation.Output); Assert.IsNull(heightStructuresCalculation.Output); + Assert.IsNull(stabilityStoneCoverWaveConditionsCalculation.Output); CollectionAssert.AreEqual(new ICalculation[] { pipingCalculation, grassCoverErosionInwardsCalculation, + stabilityStoneCoverWaveConditionsCalculation, heightStructuresCalculation }, affectedItems); } [Test] + public void ClearAllCalculationOutputAndHydraulicBoundaryLocations_CalculationsWithoutOutputAndHydraulicBoundaryLocation_ReturnNoAffectedItems() + { + // Setup + var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike); + + var emptyPipingCalculation = new PipingCalculation(new GeneralPipingInput()); + var emptyGrassCoverErosionInwardsCalculation = new GrassCoverErosionInwardsCalculation(); + var emptyHeightStructuresCalculation = new HeightStructuresCalculation(); + var emptyStabilityStoneCoverWaveConditionsCalculation = new StabilityStoneCoverWaveConditionsCalculation(); + + assessmentSection.PipingFailureMechanism.CalculationsGroup.Children.Add(emptyPipingCalculation); + assessmentSection.GrassCoverErosionInwards.CalculationsGroup.Children.Add(emptyGrassCoverErosionInwardsCalculation); + assessmentSection.HeightStructures.CalculationsGroup.Children.Add(emptyHeightStructuresCalculation); + assessmentSection.StabilityStoneCover.WaveConditionsCalculationGroup.Children.Add(emptyStabilityStoneCoverWaveConditionsCalculation); + + // Call + IEnumerable affectedItems = RingtoetsDataSynchronizationService.ClearAllCalculationOutputAndHydraulicBoundaryLocations(assessmentSection); + + // Assert + CollectionAssert.IsEmpty(affectedItems); + } + + [Test] public void ClearHydraulicBoundaryLocationOutput_HydraulicBoundaryDatabaseNull_ThrowsArgumentNullException() { // Setup @@ -431,7 +495,7 @@ { HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase() }; - HydraulicBoundaryLocation hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "test", 0, 0) + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "test", 0, 0) { WaveHeight = (RoundedDouble) waveHeight, DesignWaterLevel = (RoundedDouble) designWaterLevel @@ -473,7 +537,7 @@ { HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase() }; - HydraulicBoundaryLocation hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "test", 0, 0); + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "test", 0, 0); assessmentSection.HydraulicBoundaryDatabase.Locations.Add(hydraulicBoundaryLocation); // Call @@ -489,7 +553,7 @@ public void ClearHydraulicBoundaryLocationOutput_LocationWithoutDataAndGrassCoverErosionOutwardsLocationWithData_ClearDataAndReturnTrue(double designWaterLevel, double waveHeight) { // Setup - HydraulicBoundaryLocation hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "test", 0, 0); + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "test", 0, 0); var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase { Locations = @@ -527,7 +591,7 @@ public void ClearHydraulicBoundaryLocationOutput_LocationWithoutDataAndGrassCoverErosionOutwardsLocationWithoutData_ReturnFalse() { // Setup - HydraulicBoundaryLocation hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "test", 0, 0); + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "test", 0, 0); var hydraulicBoundaryDatabase = new HydraulicBoundaryDatabase { Locations = @@ -558,7 +622,7 @@ public void ClearHydraulicBoundaryLocationOutput_LocationWithDataAndGrassCoverErosionOutwardsLocationWithData_ClearDataAndReturnTrue(double designWaterLevel, double waveHeight) { // Setup - HydraulicBoundaryLocation hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "test", 0, 0) + var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(1, "test", 0, 0) { DesignWaterLevel = (RoundedDouble)designWaterLevel, WaveHeight = (RoundedDouble)waveHeight