Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/CalculationGroupCreateExtensions.cs =================================================================== diff -u -r0540405a7dbabf85dc02db30c79c3c58b0faeea6 -ra1038b9835ef74c1a2533afa2fbe5cbe2a41747c --- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/CalculationGroupCreateExtensions.cs (.../CalculationGroupCreateExtensions.cs) (revision 0540405a7dbabf85dc02db30c79c3c58b0faeea6) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/CalculationGroupCreateExtensions.cs (.../CalculationGroupCreateExtensions.cs) (revision a1038b9835ef74c1a2533afa2fbe5cbe2a41747c) @@ -21,11 +21,13 @@ using System; using Application.Ringtoets.Storage.Create.GrassCoverErosionInwards; +using Application.Ringtoets.Storage.Create.GrassCoverErosionOutwards; using Application.Ringtoets.Storage.Create.Piping; using Application.Ringtoets.Storage.Create.StabilityStoneCover; using Application.Ringtoets.Storage.DbContext; using Ringtoets.Common.Data.Calculation; using Ringtoets.GrassCoverErosionInwards.Data; +using Ringtoets.GrassCoverErosionOutwards.Data; using Ringtoets.Piping.Data; using Ringtoets.StabilityStoneCover.Data; @@ -83,6 +85,11 @@ { entity.GrassCoverErosionInwardsCalculationEntities.Add(childGrassCoverErosionInwardsCalculation.Create(registry, i)); } + var childGrassCoverErosionOutwardsCalculation = calculationBase as GrassCoverErosionOutwardsWaveConditionsCalculation; + if (childGrassCoverErosionOutwardsCalculation != null) + { + entity.GrassCoverErosionOutwardsWaveConditionsCalculationEntities.Add(childGrassCoverErosionOutwardsCalculation.Create(registry, i)); + } var stabilityStoneCoverWaveConditionsCalculation = calculationBase as StabilityStoneCoverWaveConditionsCalculation; if (stabilityStoneCoverWaveConditionsCalculation != null) { Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/CalculationGroupEntityReadExtentions.cs =================================================================== diff -u -r84ee3771c05ffe655c2d11c6accdea23256e73bf -ra1038b9835ef74c1a2533afa2fbe5cbe2a41747c --- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/CalculationGroupEntityReadExtentions.cs (.../CalculationGroupEntityReadExtentions.cs) (revision 84ee3771c05ffe655c2d11c6accdea23256e73bf) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/CalculationGroupEntityReadExtentions.cs (.../CalculationGroupEntityReadExtentions.cs) (revision a1038b9835ef74c1a2533afa2fbe5cbe2a41747c) @@ -23,6 +23,7 @@ using System.Collections; using Application.Ringtoets.Storage.DbContext; using Application.Ringtoets.Storage.Read.GrassCoverErosionInwards; +using Application.Ringtoets.Storage.Read.GrassCoverErosionOutwards; using Application.Ringtoets.Storage.Read.Piping; using Application.Ringtoets.Storage.Read.StabilityStoneCover; using Ringtoets.Common.Data.Calculation; @@ -140,6 +141,11 @@ { group.Children.Add(childCalculationGroupEntity.ReadAsGrassCoverErosionOutwardsWaveConditionsCalculationGroup(collector)); } + var childCalculationEntity = childEntity as GrassCoverErosionOutwardsWaveConditionsCalculationEntity; + if (childCalculationEntity != null) + { + group.Children.Add(childCalculationEntity.Read(collector)); + } } return group; @@ -219,18 +225,22 @@ { sortedList.Add(groupEntity.Order, groupEntity); } - foreach (PipingCalculationEntity pipingCalculationEntity in entity.PipingCalculationEntities) + foreach (PipingCalculationEntity calculationEntity in entity.PipingCalculationEntities) { - sortedList.Add(pipingCalculationEntity.Order, pipingCalculationEntity); + sortedList.Add(calculationEntity.Order, calculationEntity); } - foreach (GrassCoverErosionInwardsCalculationEntity grassCoverErosionInwardsCalculationEntity in entity.GrassCoverErosionInwardsCalculationEntities) + foreach (GrassCoverErosionInwardsCalculationEntity calculationEntity in entity.GrassCoverErosionInwardsCalculationEntities) { - sortedList.Add(grassCoverErosionInwardsCalculationEntity.Order, grassCoverErosionInwardsCalculationEntity); + sortedList.Add(calculationEntity.Order, calculationEntity); } - foreach (StabilityStoneCoverWaveConditionsCalculationEntity stabilityStoneCoverWaveConditionsCalculationEntity in entity.StabilityStoneCoverWaveConditionsCalculationEntities) + foreach (GrassCoverErosionOutwardsWaveConditionsCalculationEntity calculationEntity in entity.GrassCoverErosionOutwardsWaveConditionsCalculationEntities) { - sortedList.Add(stabilityStoneCoverWaveConditionsCalculationEntity.Order, stabilityStoneCoverWaveConditionsCalculationEntity); + sortedList.Add(calculationEntity.Order, calculationEntity); } + foreach (StabilityStoneCoverWaveConditionsCalculationEntity calculationEntity in entity.StabilityStoneCoverWaveConditionsCalculationEntities) + { + sortedList.Add(calculationEntity.Order, calculationEntity); + } return sortedList.Values; } } Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/CalculationGroupCreateExtensionsTest.cs =================================================================== diff -u -r0540405a7dbabf85dc02db30c79c3c58b0faeea6 -ra1038b9835ef74c1a2533afa2fbe5cbe2a41747c --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/CalculationGroupCreateExtensionsTest.cs (.../CalculationGroupCreateExtensionsTest.cs) (revision 0540405a7dbabf85dc02db30c79c3c58b0faeea6) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/CalculationGroupCreateExtensionsTest.cs (.../CalculationGroupCreateExtensionsTest.cs) (revision a1038b9835ef74c1a2533afa2fbe5cbe2a41747c) @@ -26,6 +26,7 @@ using NUnit.Framework; using Ringtoets.Common.Data.Calculation; using Ringtoets.GrassCoverErosionInwards.Data; +using Ringtoets.GrassCoverErosionOutwards.Data; using Ringtoets.Piping.Data; using Ringtoets.StabilityStoneCover.Data; @@ -326,6 +327,95 @@ } [Test] + public void Create_GroupWithChildGrassCoverErosionOutwardsWaveConditionsCalculations_CreateEntities() + { + // Setup + var group = new CalculationGroup("root", true) + { + Children = + { + new GrassCoverErosionOutwardsWaveConditionsCalculation + { + Name = "A" + }, + new GrassCoverErosionOutwardsWaveConditionsCalculation + { + Name = "B" + } + } + }; + + var registry = new PersistenceRegistry(); + + // Call + CalculationGroupEntity entity = group.Create(registry, 0); + + // Assert + GrassCoverErosionOutwardsWaveConditionsCalculationEntity[] childCalculationEntities = entity.GrassCoverErosionOutwardsWaveConditionsCalculationEntities.ToArray(); + Assert.AreEqual(2, childCalculationEntities.Length); + + GrassCoverErosionOutwardsWaveConditionsCalculationEntity childEntity1 = childCalculationEntities[0]; + Assert.AreEqual("A", childEntity1.Name); + Assert.AreEqual(0, childEntity1.Order); + GrassCoverErosionOutwardsWaveConditionsCalculationEntity childEntity2 = childCalculationEntities[1]; + Assert.AreEqual("B", childEntity2.Name); + Assert.AreEqual(1, childEntity2.Order); + } + + [Test] + public void Create_GroupWithChildGrassCoverErosionOutwardsWaveConditionsCalculationsAndChildCalculationGroups_CreateEntities() + { + // Setup + var group = new CalculationGroup("root", true) + { + Children = + { + new CalculationGroup("A", true), + new GrassCoverErosionOutwardsWaveConditionsCalculation + { + Name = "B" + }, + new CalculationGroup("C", false), + new GrassCoverErosionOutwardsWaveConditionsCalculation + { + Name = "D" + } + } + }; + + var registry = new PersistenceRegistry(); + + // Call + CalculationGroupEntity entity = group.Create(registry, 0); + + // Assert + CalculationGroupEntity[] childGroupEntities = entity.CalculationGroupEntity1.ToArray(); + GrassCoverErosionOutwardsWaveConditionsCalculationEntity[] childCalculationEntities = entity.GrassCoverErosionOutwardsWaveConditionsCalculationEntities.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); + + GrassCoverErosionOutwardsWaveConditionsCalculationEntity 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); + + GrassCoverErosionOutwardsWaveConditionsCalculationEntity childEntity4 = childCalculationEntities[1]; + Assert.AreEqual("D", childEntity4.Name); + Assert.AreEqual(3, childEntity4.Order); + } + + [Test] public void Create_GroupWithChildStabilityStoneCoverWaveConditionsCalculations_CreateEntities() { // Setup Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/CalculationGroupEntityReadExtentionsTest.cs =================================================================== diff -u -r8a45113465dd347e1f382345cb4c6b578232585e -ra1038b9835ef74c1a2533afa2fbe5cbe2a41747c --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/CalculationGroupEntityReadExtentionsTest.cs (.../CalculationGroupEntityReadExtentionsTest.cs) (revision 8a45113465dd347e1f382345cb4c6b578232585e) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/CalculationGroupEntityReadExtentionsTest.cs (.../CalculationGroupEntityReadExtentionsTest.cs) (revision a1038b9835ef74c1a2533afa2fbe5cbe2a41747c) @@ -26,6 +26,7 @@ using NUnit.Framework; using Ringtoets.Common.Data.Calculation; using Ringtoets.GrassCoverErosionInwards.Data; +using Ringtoets.GrassCoverErosionOutwards.Data; using Ringtoets.Piping.Data; using Ringtoets.StabilityStoneCover.Data; @@ -34,6 +35,8 @@ [TestFixture] public class CalculationGroupEntityReadExtentionsTest { + #region Piping + [Test] public void ReadAsPipingCalculationGroup_ReadConversionCollectorIsNull_ThrowArgumentNullException() { @@ -259,6 +262,10 @@ Assert.AreEqual("group2", rootChildGroup2.Name); } + #endregion + + #region Grass Cover Erosion Inwards + [Test] public void ReadAsGrassCoverErosionInwardsCalculationGroup_CollectorIsNull_ThrowArgumentNullException() { @@ -460,6 +467,10 @@ Assert.AreEqual("group2", rootChildGroup2.Name); } + #endregion + + #region Grass Cover Erosion Outwards + [Test] public void ReadAsGrassCoverErosionOutwardsWaveConditionsCalculationGroup_CollectorIsNull_ThrowArgumentNullException() { @@ -567,6 +578,105 @@ } [Test] + public void ReadAsGrassCoverErosionOutwardsWaveConditionsCalculationGroup_EntityWithChildGrassCoverErosionOutwardsWaveConditionsCalculations_CreateCalculationGroupWithChildCalculations() + { + // Setup + var rootGroupEntity = new CalculationGroupEntity + { + Name = "A", + GrassCoverErosionOutwardsWaveConditionsCalculationEntities = + { + new GrassCoverErosionOutwardsWaveConditionsCalculationEntity + { + Order = 0, + Name = "1" + }, + new GrassCoverErosionOutwardsWaveConditionsCalculationEntity + { + Order = 1, + Name = "2" + } + } + }; + + var collector = new ReadConversionCollector(); + + // Call + var rootGroup = rootGroupEntity.ReadAsGrassCoverErosionOutwardsWaveConditionsCalculationGroup(collector); + + // Assert + ICalculationBase[] rootChildren = rootGroup.Children.ToArray(); + Assert.AreEqual(2, rootChildren.Length); + + var rootChildCalculation1 = (GrassCoverErosionOutwardsWaveConditionsCalculation) rootChildren[0]; + Assert.AreEqual("1", rootChildCalculation1.Name); + + var rootChildCalculation2 = (GrassCoverErosionOutwardsWaveConditionsCalculation) rootChildren[1]; + Assert.AreEqual("2", rootChildCalculation2.Name); + } + + [Test] + public void ReadAsGrassCoverErosionOutwardsWaveConditionsCalculationGroup_EntityWithChildGrassCoverErosionOutwardsWaveConditionsCalculationsAndGroups_CreateCalculationGroupWithChildCalculationsAndGroups() + { + // Setup + var rootGroupEntity = new CalculationGroupEntity + { + Name = "A", + GrassCoverErosionOutwardsWaveConditionsCalculationEntities = + { + new GrassCoverErosionOutwardsWaveConditionsCalculationEntity + { + Order = 0, + Name = "calculation1" + }, + new GrassCoverErosionOutwardsWaveConditionsCalculationEntity + { + Order = 2, + Name = "calculation2" + } + }, + CalculationGroupEntity1 = + { + new CalculationGroupEntity + { + Order = 1, + Name = "group1" + }, + new CalculationGroupEntity + { + Order = 3, + Name = "group2" + } + } + }; + + var collector = new ReadConversionCollector(); + + // Call + var rootGroup = rootGroupEntity.ReadAsGrassCoverErosionOutwardsWaveConditionsCalculationGroup(collector); + + // Assert + ICalculationBase[] rootChildren = rootGroup.Children.ToArray(); + Assert.AreEqual(4, rootChildren.Length); + + var rootChildCalculation1 = (GrassCoverErosionOutwardsWaveConditionsCalculation) rootChildren[0]; + Assert.AreEqual("calculation1", rootChildCalculation1.Name); + + var rootChildGroup1 = (CalculationGroup) rootChildren[1]; + Assert.AreEqual("group1", rootChildGroup1.Name); + + var rootChildCalculation2 = (GrassCoverErosionOutwardsWaveConditionsCalculation) rootChildren[2]; + Assert.AreEqual("calculation2", rootChildCalculation2.Name); + + var rootChildGroup2 = (CalculationGroup) rootChildren[3]; + Assert.AreEqual("group2", rootChildGroup2.Name); + } + + #endregion + + #region Stability Stone Cover + + [Test] public void ReadAsStabilityStoneCoverWaveConditionsCalculationGroup_CollectorIsNull_ThrowArgumentNullException() { // Setup @@ -653,20 +763,20 @@ Assert.IsFalse(rootGroup.IsNameEditable); ICalculationBase[] rootChildren = rootGroup.Children.ToArray(); - var rootChildGroup1 = (CalculationGroup)rootChildren[0]; + var rootChildGroup1 = (CalculationGroup) rootChildren[0]; Assert.AreEqual("AA", rootChildGroup1.Name); Assert.IsTrue(rootChildGroup1.IsNameEditable); CollectionAssert.IsEmpty(rootChildGroup1.Children); - var rootChildGroup2 = (CalculationGroup)rootChildren[1]; + var rootChildGroup2 = (CalculationGroup) rootChildren[1]; Assert.AreEqual("AB", rootChildGroup2.Name); Assert.IsFalse(rootChildGroup2.IsNameEditable); ICalculationBase[] rootChildGroup2Children = rootChildGroup2.Children.ToArray(); - var rootChildGroup1Child1 = (CalculationGroup)rootChildGroup2Children[0]; + var rootChildGroup1Child1 = (CalculationGroup) rootChildGroup2Children[0]; Assert.AreEqual("ABA", rootChildGroup1Child1.Name); Assert.IsFalse(rootChildGroup1Child1.IsNameEditable); CollectionAssert.IsEmpty(rootChildGroup1Child1.Children); - var rootChildGroup1Child2 = (CalculationGroup)rootChildGroup2Children[1]; + var rootChildGroup1Child2 = (CalculationGroup) rootChildGroup2Children[1]; Assert.AreEqual("ABB", rootChildGroup1Child2.Name); Assert.IsTrue(rootChildGroup1Child2.IsNameEditable); CollectionAssert.IsEmpty(rootChildGroup1Child2.Children); @@ -679,7 +789,7 @@ var rootGroupEntity = new CalculationGroupEntity { Name = "A", - StabilityStoneCoverWaveConditionsCalculationEntities = + StabilityStoneCoverWaveConditionsCalculationEntities = { new StabilityStoneCoverWaveConditionsCalculationEntity { @@ -703,10 +813,10 @@ ICalculationBase[] rootChildren = rootGroup.Children.ToArray(); Assert.AreEqual(2, rootChildren.Length); - var rootChildCalculation1 = (StabilityStoneCoverWaveConditionsCalculation)rootChildren[0]; + var rootChildCalculation1 = (StabilityStoneCoverWaveConditionsCalculation) rootChildren[0]; Assert.AreEqual("1", rootChildCalculation1.Name); - var rootChildCalculation2 = (StabilityStoneCoverWaveConditionsCalculation)rootChildren[1]; + var rootChildCalculation2 = (StabilityStoneCoverWaveConditionsCalculation) rootChildren[1]; Assert.AreEqual("2", rootChildCalculation2.Name); } @@ -754,19 +864,23 @@ ICalculationBase[] rootChildren = rootGroup.Children.ToArray(); Assert.AreEqual(4, rootChildren.Length); - var rootChildCalculation1 = (StabilityStoneCoverWaveConditionsCalculation)rootChildren[0]; + var rootChildCalculation1 = (StabilityStoneCoverWaveConditionsCalculation) rootChildren[0]; Assert.AreEqual("calculation1", rootChildCalculation1.Name); - var rootChildGroup1 = (CalculationGroup)rootChildren[1]; + var rootChildGroup1 = (CalculationGroup) rootChildren[1]; Assert.AreEqual("group1", rootChildGroup1.Name); - var rootChildCalculation2 = (StabilityStoneCoverWaveConditionsCalculation)rootChildren[2]; + var rootChildCalculation2 = (StabilityStoneCoverWaveConditionsCalculation) rootChildren[2]; Assert.AreEqual("calculation2", rootChildCalculation2.Name); - var rootChildGroup2 = (CalculationGroup)rootChildren[3]; + var rootChildGroup2 = (CalculationGroup) rootChildren[3]; Assert.AreEqual("group2", rootChildGroup2.Name); } + #endregion + + #region Wave Impact Asphalt Cover + [Test] public void ReadAsWaveImpactAsphaltCoverWaveConditionsCalculationGroup_CollectorIsNull_ThrowArgumentNullException() { @@ -854,23 +968,24 @@ Assert.IsFalse(rootGroup.IsNameEditable); ICalculationBase[] rootChildren = rootGroup.Children.ToArray(); - var rootChildGroup1 = (CalculationGroup)rootChildren[0]; + var rootChildGroup1 = (CalculationGroup) rootChildren[0]; Assert.AreEqual("AA", rootChildGroup1.Name); Assert.IsTrue(rootChildGroup1.IsNameEditable); CollectionAssert.IsEmpty(rootChildGroup1.Children); - var rootChildGroup2 = (CalculationGroup)rootChildren[1]; + var rootChildGroup2 = (CalculationGroup) rootChildren[1]; Assert.AreEqual("AB", rootChildGroup2.Name); Assert.IsFalse(rootChildGroup2.IsNameEditable); ICalculationBase[] rootChildGroup2Children = rootChildGroup2.Children.ToArray(); - var rootChildGroup1Child1 = (CalculationGroup)rootChildGroup2Children[0]; + var rootChildGroup1Child1 = (CalculationGroup) rootChildGroup2Children[0]; Assert.AreEqual("ABA", rootChildGroup1Child1.Name); Assert.IsFalse(rootChildGroup1Child1.IsNameEditable); CollectionAssert.IsEmpty(rootChildGroup1Child1.Children); - var rootChildGroup1Child2 = (CalculationGroup)rootChildGroup2Children[1]; + var rootChildGroup1Child2 = (CalculationGroup) rootChildGroup2Children[1]; Assert.AreEqual("ABB", rootChildGroup1Child2.Name); Assert.IsTrue(rootChildGroup1Child2.IsNameEditable); CollectionAssert.IsEmpty(rootChildGroup1Child2.Children); } + #endregion } } \ No newline at end of file