Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/CalculationGroupCreateExtensions.cs =================================================================== diff -u -r1a062846c75d2d86454dc052adc7a5993b79963e -rdeb869b51292750cd872df973bb838464b732643 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/CalculationGroupCreateExtensions.cs (.../CalculationGroupCreateExtensions.cs) (revision 1a062846c75d2d86454dc052adc7a5993b79963e) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/CalculationGroupCreateExtensions.cs (.../CalculationGroupCreateExtensions.cs) (revision deb869b51292750cd872df973bb838464b732643) @@ -22,6 +22,7 @@ using System; using Application.Ringtoets.Storage.Create.GrassCoverErosionInwards; using Application.Ringtoets.Storage.Create.GrassCoverErosionOutwards; +using Application.Ringtoets.Storage.Create.HeightStructures; using Application.Ringtoets.Storage.Create.Piping; using Application.Ringtoets.Storage.Create.StabilityStoneCover; using Application.Ringtoets.Storage.Create.WaveImpactAsphaltCover; @@ -30,6 +31,7 @@ using Ringtoets.Common.Data.Calculation; using Ringtoets.GrassCoverErosionInwards.Data; using Ringtoets.GrassCoverErosionOutwards.Data; +using Ringtoets.HeightStructures.Data; using Ringtoets.Piping.Data; using Ringtoets.StabilityStoneCover.Data; using Ringtoets.WaveImpactAsphaltCover.Data; @@ -69,7 +71,7 @@ private static void CreateChildElements(CalculationGroup parentGroup, CalculationGroupEntity entity, PersistenceRegistry registry) { - for (int i = 0; i < parentGroup.Children.Count; i++) + for (var i = 0; i < parentGroup.Children.Count; i++) { ICalculationBase calculationBase = parentGroup.Children[i]; @@ -93,6 +95,11 @@ { entity.GrassCoverErosionOutwardsWaveConditionsCalculationEntities.Add(childGrassCoverErosionOutwardsCalculation.Create(registry, i)); } + var childHeightStructuresCalculation = calculationBase as HeightStructuresCalculation; + if (childHeightStructuresCalculation != null) + { + entity.HeightStructuresCalculationEntities.Add(childHeightStructuresCalculation.Create(registry, i)); + } var stabilityStoneCoverWaveConditionsCalculation = calculationBase as StabilityStoneCoverWaveConditionsCalculation; if (stabilityStoneCoverWaveConditionsCalculation != null) { Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/CalculationGroupCreateExtensionsTest.cs =================================================================== diff -u -r5cc8a49cc445a67f425ced8216c772b9170ea517 -rdeb869b51292750cd872df973bb838464b732643 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/CalculationGroupCreateExtensionsTest.cs (.../CalculationGroupCreateExtensionsTest.cs) (revision 5cc8a49cc445a67f425ced8216c772b9170ea517) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/CalculationGroupCreateExtensionsTest.cs (.../CalculationGroupCreateExtensionsTest.cs) (revision deb869b51292750cd872df973bb838464b732643) @@ -27,6 +27,7 @@ using Ringtoets.Common.Data.Calculation; using Ringtoets.GrassCoverErosionInwards.Data; using Ringtoets.GrassCoverErosionOutwards.Data; +using Ringtoets.HeightStructures.Data; using Ringtoets.Piping.Data; using Ringtoets.StabilityStoneCover.Data; using Ringtoets.WaveImpactAsphaltCover.Data; @@ -417,6 +418,95 @@ } [Test] + public void Create_GroupWithChildHeightStructuresCalculations_CreateEntities() + { + // Setup + var group = new CalculationGroup("root", true) + { + Children = + { + new HeightStructuresCalculation + { + Name = "A" + }, + new HeightStructuresCalculation + { + Name = "B" + } + } + }; + + var registry = new PersistenceRegistry(); + + // Call + CalculationGroupEntity entity = group.Create(registry, 0); + + // Assert + HeightStructuresCalculationEntity[] childCalculationEntities = entity.HeightStructuresCalculationEntities.ToArray(); + Assert.AreEqual(2, childCalculationEntities.Length); + + HeightStructuresCalculationEntity childEntity1 = childCalculationEntities[0]; + Assert.AreEqual("A", childEntity1.Name); + Assert.AreEqual(0, childEntity1.Order); + HeightStructuresCalculationEntity childEntity2 = childCalculationEntities[1]; + Assert.AreEqual("B", childEntity2.Name); + Assert.AreEqual(1, childEntity2.Order); + } + + [Test] + public void Create_GroupWithChildHeightStructuresCalculationsAndChildCalculationGroups_CreateEntities() + { + // Setup + var group = new CalculationGroup("root", true) + { + Children = + { + new CalculationGroup("A", true), + new HeightStructuresCalculation + { + Name = "B" + }, + new CalculationGroup("C", false), + new HeightStructuresCalculation + { + Name = "D" + } + } + }; + + var registry = new PersistenceRegistry(); + + // Call + CalculationGroupEntity entity = group.Create(registry, 0); + + // Assert + CalculationGroupEntity[] childGroupEntities = entity.CalculationGroupEntity1.ToArray(); + HeightStructuresCalculationEntity[] childCalculationEntities = entity.HeightStructuresCalculationEntities.ToArray(); + Assert.AreEqual(2, childGroupEntities.Length); + Assert.AreEqual(2, childCalculationEntities.Length); + + CalculationGroupEntity childEntity1 = childGroupEntities[0]; + Assert.AreEqual("A", childEntity1.Name); + Assert.AreEqual(1, childEntity1.IsEditable); + Assert.AreEqual(0, childEntity1.Order); + CollectionAssert.IsEmpty(childEntity1.CalculationGroupEntity1); + + HeightStructuresCalculationEntity childEntity2 = childCalculationEntities[0]; + Assert.AreEqual("B", childEntity2.Name); + Assert.AreEqual(1, childEntity2.Order); + + CalculationGroupEntity childEntity3 = childGroupEntities[1]; + Assert.AreEqual("C", childEntity3.Name); + Assert.AreEqual(0, childEntity3.IsEditable); + Assert.AreEqual(2, childEntity3.Order); + CollectionAssert.IsEmpty(childEntity3.CalculationGroupEntity1); + + HeightStructuresCalculationEntity childEntity4 = childCalculationEntities[1]; + Assert.AreEqual("D", childEntity4.Name); + Assert.AreEqual(3, childEntity4.Order); + } + + [Test] public void Create_GroupWithChildStabilityStoneCoverWaveConditionsCalculations_CreateEntities() { // Setup