Index: Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/RingtoetsDataSynchronizationServiceTest.cs =================================================================== diff -u -r2ef5183542af0464fab4ebadb3a6c2c4f7ff46b7 -rc3641f1375abfabf1c8093037c0cccd3eb77d52a --- Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/RingtoetsDataSynchronizationServiceTest.cs (.../RingtoetsDataSynchronizationServiceTest.cs) (revision 2ef5183542af0464fab4ebadb3a6c2c4f7ff46b7) +++ Ringtoets/Integration/test/Ringtoets.Integration.Service.Test/RingtoetsDataSynchronizationServiceTest.cs (.../RingtoetsDataSynchronizationServiceTest.cs) (revision c3641f1375abfabf1c8093037c0cccd3eb77d52a) @@ -41,6 +41,7 @@ using Ringtoets.HeightStructures.Data; using Ringtoets.Integration.Data; using Ringtoets.Integration.Data.StandAlone; +using Ringtoets.Integration.Data.StandAlone.SectionResults; using Ringtoets.Integration.TestUtil; using Ringtoets.MacroStabilityInwards.Data; using Ringtoets.MacroStabilityInwards.Data.SoilProfile; @@ -110,9 +111,9 @@ .GetFailureMechanisms() .ToList(); IEnumerable expectedAffectedItems = failureMechanisms - .SelectMany(f => f.Calculations) - .Where(c => c.HasOutput) - .ToList(); + .SelectMany(f => f.Calculations) + .Where(c => c.HasOutput) + .ToList(); // Call IEnumerable affectedItems = RingtoetsDataSynchronizationService.ClearFailureMechanismCalculationOutputs(failureMechanisms); @@ -121,8 +122,8 @@ // Note: To make sure the clear is performed regardless of what is done with // the return result, no ToArray() should be called before these assertions: CollectionAssert.IsEmpty(failureMechanisms - .SelectMany(f => f.Calculations) - .Where(c => c.HasOutput)); + .SelectMany(f => f.Calculations) + .Where(c => c.HasOutput)); CollectionAssert.AreEquivalent(expectedAffectedItems, affectedItems); } @@ -328,6 +329,7 @@ { expectedAffectedItems.Add(grassCoverErosionLocation); } + if (duneLocation.Calculation.Output != null) { expectedAffectedItems.Add(duneLocation); @@ -392,6 +394,7 @@ { expectedAffectedItems.Add(grassCoverErosionLocation); } + if (duneLocation.Calculation.Output != null) { expectedAffectedItems.Add(duneLocation); @@ -448,10 +451,12 @@ { expectedAffectedItems.Add(hydraulicBoundaryLocation); } + if (HasHydraulicBoundaryLocationOutput(grassCoverErosionLocation)) { expectedAffectedItems.Add(grassCoverErosionLocation); } + if (duneLocation.Calculation.Output != null) { expectedAffectedItems.Add(duneLocation); @@ -861,6 +866,7 @@ Assert.IsNull(calculation.InputParameters.ForeshoreProfile); CollectionAssert.Contains(array, calculation.InputParameters); } + foreach (ICalculation calculation in calculationsWithOutput) { Assert.IsFalse(calculation.HasOutput); @@ -936,6 +942,7 @@ Assert.IsNull(calculation.InputParameters.ForeshoreProfile); CollectionAssert.Contains(array, calculation.InputParameters); } + foreach (ICalculation calculation in calculationsWithOutput) { Assert.IsFalse(calculation.HasOutput); @@ -1010,6 +1017,7 @@ Assert.IsNull(calculation.InputParameters.ForeshoreProfile); CollectionAssert.Contains(array, calculation.InputParameters); } + foreach (ICalculation calculation in calculationsWithOutput) { Assert.IsFalse(calculation.HasOutput); @@ -1085,6 +1093,7 @@ Assert.IsNull(calculation.InputParameters.ForeshoreProfile); CollectionAssert.Contains(array, calculation.InputParameters); } + foreach (ICalculation calculation in calculationsWithOutput) { Assert.IsFalse(calculation.HasOutput); @@ -1160,6 +1169,7 @@ Assert.IsNull(calculation.InputParameters.ForeshoreProfile); CollectionAssert.Contains(array, calculation.InputParameters); } + foreach (ICalculation calculation in calculationsWithOutput) { Assert.IsFalse(calculation.HasOutput); @@ -1235,6 +1245,7 @@ Assert.IsNull(calculation.InputParameters.ForeshoreProfile); CollectionAssert.Contains(array, calculation.InputParameters); } + foreach (ICalculation calculation in calculationsWithOutput) { Assert.IsFalse(calculation.HasOutput); @@ -1376,6 +1387,7 @@ { Assert.IsNull(calculation.InputParameters.DikeProfile); } + foreach (GrassCoverErosionInwardsFailureMechanismSectionResult sectionResult in sectionResults) { Assert.IsNull(sectionResult.Calculation); @@ -1390,214 +1402,259 @@ CollectionAssert.Contains(array, calculation.InputParameters); Assert.IsFalse(calculation.HasOutput); } + foreach (GrassCoverErosionInwardsFailureMechanismSectionResult sectionResult in sectionResults) { CollectionAssert.Contains(array, sectionResult); } + Assert.AreEqual(originalNumberOfSectionResultAssignments - sectionResults.Length, failureMechanism.SectionResults.Count(sr => sr.Calculation != null), "Other section results with a different calculation/dikeprofile should still have their association."); } - private IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(AssessmentSection assessmentSection) + private static IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(AssessmentSection assessmentSection) { var expectedRemovedObjects = new List(); expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.Piping)); expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.GrassCoverErosionInwards)); expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.MacroStabilityInwards)); - expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.MacroStabilityOutwards)); - expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.Microstability)); + expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.MacroStabilityOutwards)); + expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.Microstability)); expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.StabilityStoneCover)); expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.WaveImpactAsphaltCover)); - expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.WaterPressureAsphaltCover)); + expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.WaterPressureAsphaltCover)); expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.GrassCoverErosionOutwards)); - expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.GrassCoverSlipOffOutwards)); - expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.GrassCoverSlipOffInwards)); + expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.GrassCoverSlipOffOutwards)); + expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.GrassCoverSlipOffInwards)); expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.HeightStructures)); expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.ClosingStructures)); - expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.PipingStructure)); + expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.PipingStructure)); expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.StabilityPointStructures)); - expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.StrengthStabilityLengthwiseConstruction)); - expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.DuneErosion)); - expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.TechnicalInnovation)); + expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.StrengthStabilityLengthwiseConstruction)); + expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.DuneErosion)); + expectedRemovedObjects.AddRange(GetExpectedRemovedObjectsWhenClearingReferenceLine(assessmentSection.TechnicalInnovation)); if (assessmentSection.ReferenceLine != null) { expectedRemovedObjects.Add(assessmentSection.ReferenceLine); } + return expectedRemovedObjects; } - private IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(PipingFailureMechanism failureMechanism) + private static IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(PipingFailureMechanism failureMechanism) { - foreach (object failureMechanismObject in GetExpectedRemovedObjectsWhenClearingReferenceLine(failureMechanism)) + foreach (object failureMechanismObject in GetExpectedRemovedObjectsWhenClearingReferenceLine(failureMechanism)) { yield return failureMechanismObject; } + foreach (ICalculationBase calculationBase in failureMechanism.CalculationsGroup.GetAllChildrenRecursive()) { yield return calculationBase; } + foreach (PipingStochasticSoilModel stochasticSoilModel in failureMechanism.StochasticSoilModels) { yield return stochasticSoilModel; } + foreach (PipingSurfaceLine surfaceLine in failureMechanism.SurfaceLines) { yield return surfaceLine; } } - private IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(MacroStabilityInwardsFailureMechanism failureMechanism) + private static IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(MacroStabilityInwardsFailureMechanism failureMechanism) { - foreach (object failureMechanismObject in GetExpectedRemovedObjectsWhenClearingReferenceLine(failureMechanism)) + foreach (object failureMechanismObject in GetExpectedRemovedObjectsWhenClearingReferenceLine(failureMechanism)) { yield return failureMechanismObject; } + foreach (ICalculationBase calculationBase in failureMechanism.CalculationsGroup.GetAllChildrenRecursive()) { yield return calculationBase; } + foreach (MacroStabilityInwardsStochasticSoilModel stochasticSoilModel in failureMechanism.StochasticSoilModels) { yield return stochasticSoilModel; } + foreach (MacroStabilityInwardsSurfaceLine surfaceLine in failureMechanism.SurfaceLines) { yield return surfaceLine; } } - private IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(GrassCoverErosionInwardsFailureMechanism failureMechanism) + private static IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(GrassCoverErosionInwardsFailureMechanism failureMechanism) { - foreach (object failureMechanismObject in GetExpectedRemovedObjectsWhenClearingReferenceLine(failureMechanism)) + foreach (object failureMechanismObject in GetExpectedRemovedObjectsWhenClearingReferenceLine(failureMechanism)) { yield return failureMechanismObject; } + foreach (ICalculationBase calculationBase in failureMechanism.CalculationsGroup.GetAllChildrenRecursive()) { yield return calculationBase; } + foreach (DikeProfile profile in failureMechanism.DikeProfiles) { yield return profile; } } - private IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(StabilityStoneCoverFailureMechanism failureMechanism) + private static IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(StabilityStoneCoverFailureMechanism failureMechanism) { - foreach (object failureMechanismObject in GetExpectedRemovedObjectsWhenClearingReferenceLine(failureMechanism)) + foreach (object failureMechanismObject in GetExpectedRemovedObjectsWhenClearingReferenceLine(failureMechanism)) { yield return failureMechanismObject; } + foreach (ICalculationBase calculationBase in failureMechanism.WaveConditionsCalculationGroup.GetAllChildrenRecursive()) { yield return calculationBase; } + foreach (ForeshoreProfile profile in failureMechanism.ForeshoreProfiles) { yield return profile; } } - private IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(WaveImpactAsphaltCoverFailureMechanism failureMechanism) + private static IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(WaveImpactAsphaltCoverFailureMechanism failureMechanism) { - foreach (object failureMechanismObject in GetExpectedRemovedObjectsWhenClearingReferenceLine(failureMechanism)) + foreach (object failureMechanismObject in GetExpectedRemovedObjectsWhenClearingReferenceLine(failureMechanism)) { yield return failureMechanismObject; } + foreach (ICalculationBase calculationBase in failureMechanism.WaveConditionsCalculationGroup.GetAllChildrenRecursive()) { yield return calculationBase; } + foreach (ForeshoreProfile profile in failureMechanism.ForeshoreProfiles) { yield return profile; } } - private IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(GrassCoverErosionOutwardsFailureMechanism failureMechanism) + private static IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(GrassCoverErosionOutwardsFailureMechanism failureMechanism) { - foreach (object failureMechanismObject in GetExpectedRemovedObjectsWhenClearingReferenceLine(failureMechanism)) + foreach (object failureMechanismObject in GetExpectedRemovedObjectsWhenClearingReferenceLine(failureMechanism)) { yield return failureMechanismObject; } + foreach (ICalculationBase calculationBase in failureMechanism.WaveConditionsCalculationGroup.GetAllChildrenRecursive()) { yield return calculationBase; } + foreach (ForeshoreProfile profile in failureMechanism.ForeshoreProfiles) { yield return profile; } } - private IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(HeightStructuresFailureMechanism failureMechanism) + private static IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(HeightStructuresFailureMechanism failureMechanism) { - foreach (object failureMechanismObject in GetExpectedRemovedObjectsWhenClearingReferenceLine(failureMechanism)) + foreach (object failureMechanismObject in GetExpectedRemovedObjectsWhenClearingReferenceLine>(failureMechanism)) { yield return failureMechanismObject; } + foreach (ICalculationBase calculationBase in failureMechanism.CalculationsGroup.GetAllChildrenRecursive()) { yield return calculationBase; } + foreach (ForeshoreProfile profile in failureMechanism.ForeshoreProfiles) { yield return profile; } + foreach (HeightStructure structure in failureMechanism.HeightStructures) { yield return structure; } } - private IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(ClosingStructuresFailureMechanism failureMechanism) + private static IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(ClosingStructuresFailureMechanism failureMechanism) { - foreach (object failureMechanismObject in GetExpectedRemovedObjectsWhenClearingReferenceLine(failureMechanism)) + foreach (object failureMechanismObject in GetExpectedRemovedObjectsWhenClearingReferenceLine>(failureMechanism)) { yield return failureMechanismObject; } + foreach (ICalculationBase calculationBase in failureMechanism.CalculationsGroup.GetAllChildrenRecursive()) { yield return calculationBase; } + foreach (ForeshoreProfile profile in failureMechanism.ForeshoreProfiles) { yield return profile; } + foreach (ClosingStructure structure in failureMechanism.ClosingStructures) { yield return structure; } } - private IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(StabilityPointStructuresFailureMechanism failureMechanism) + private static IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(StabilityPointStructuresFailureMechanism failureMechanism) { - foreach (object failureMechanismObject in GetExpectedRemovedObjectsWhenClearingReferenceLine(failureMechanism)) + foreach (object failureMechanismObject in GetExpectedRemovedObjectsWhenClearingReferenceLine>(failureMechanism)) { yield return failureMechanismObject; } + foreach (ICalculationBase calculationBase in failureMechanism.CalculationsGroup.GetAllChildrenRecursive()) { yield return calculationBase; } + foreach (ForeshoreProfile profile in failureMechanism.ForeshoreProfiles) { yield return profile; } + foreach (StabilityPointStructure structure in failureMechanism.StabilityPointStructures) { yield return structure; } } - private IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(T failureMechanism) - where T : IFailureMechanism, IHasSectionResults + private static IEnumerable GetExpectedRemovedObjectsWhenClearingReferenceLine(TFailureMechanism failureMechanism) + where TFailureMechanism : IFailureMechanism, IHasSectionResults + where TSectionResult : FailureMechanismSectionResult { foreach (FailureMechanismSection section in failureMechanism.Sections) { yield return section; } - foreach (FailureMechanismSectionResult sectionResult in failureMechanism.SectionResults) + + foreach (TSectionResult sectionResult in failureMechanism.SectionResults) { yield return sectionResult; }