Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/AssessmentSectionCreateExtensions.cs =================================================================== diff -u -r213b20e92891887167ab4b031ca4a4b6250a4c2a -r5d46f6f7d54a327ba5fa13c6c8b1b10fb29be84e --- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/AssessmentSectionCreateExtensions.cs (.../AssessmentSectionCreateExtensions.cs) (revision 213b20e92891887167ab4b031ca4a4b6250a4c2a) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/AssessmentSectionCreateExtensions.cs (.../AssessmentSectionCreateExtensions.cs) (revision 5d46f6f7d54a327ba5fa13c6c8b1b10fb29be84e) @@ -68,15 +68,21 @@ private static void AddEntitiesForAddStandAloneFailureMechanisms(AssessmentSection section, AssessmentSectionEntity entity, CreateConversionCollector collector) { entity.FailureMechanismEntities.Add(section.MacrostabilityInwards.Create(FailureMechanismType.MacrostabilityInwards, collector)); + entity.FailureMechanismEntities.Add(section.MacrostabilityOutwards.Create(FailureMechanismType.MacrostabilityOutwards, collector)); + entity.FailureMechanismEntities.Add(section.Microstability.Create(FailureMechanismType.Microstability, collector)); entity.FailureMechanismEntities.Add(section.StabilityStoneCover.Create(FailureMechanismType.StabilityStoneRevetment, collector)); entity.FailureMechanismEntities.Add(section.WaveImpactAsphaltCover.Create(FailureMechanismType.WaveImpactOnAsphaltRevetment, collector)); + entity.FailureMechanismEntities.Add(section.WaterPressureAsphaltCover.Create(FailureMechanismType.WaterOverpressureAsphaltRevetment, collector)); entity.FailureMechanismEntities.Add(section.GrassCoverErosionOutwards.Create(FailureMechanismType.GrassRevetmentErosionOutwards, collector)); entity.FailureMechanismEntities.Add(section.GrassCoverSlipOffOutwards.Create(FailureMechanismType.GrassRevetmentSlidingOutwards, collector)); + entity.FailureMechanismEntities.Add(section.GrassCoverSlipOffInwards.Create(FailureMechanismType.GrassRevetmentSlidingInwards, collector)); entity.FailureMechanismEntities.Add(section.HeightStructures.Create(FailureMechanismType.StructureHeight, collector)); entity.FailureMechanismEntities.Add(section.ClosingStructure.Create(FailureMechanismType.ReliabilityClosingOfStructure, collector)); entity.FailureMechanismEntities.Add(section.PipingStructure.Create(FailureMechanismType.PipingAtStructure, collector)); entity.FailureMechanismEntities.Add(section.StrengthStabilityPointConstruction.Create(FailureMechanismType.StrengthAndStabilityPointConstruction, collector)); + entity.FailureMechanismEntities.Add(section.StrengthStabilityLengthwiseConstruction.Create(FailureMechanismType.StrengthAndStabilityParallelConstruction, collector)); entity.FailureMechanismEntities.Add(section.DuneErosion.Create(FailureMechanismType.DuneErosion, collector)); + entity.FailureMechanismEntities.Add(section.TechnicalInnovation.Create(FailureMechanismType.TechnicalInnovations, collector)); } private static void AddEntityForPipingFailureMechanism(AssessmentSection section, AssessmentSectionEntity entity, CreateConversionCollector collector) Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/FailureMechanismBaseCreateExtensions.cs =================================================================== diff -u -r41fac7fff0a505c08945108d795dcb877f10b816 -r5d46f6f7d54a327ba5fa13c6c8b1b10fb29be84e --- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/FailureMechanismBaseCreateExtensions.cs (.../FailureMechanismBaseCreateExtensions.cs) (revision 41fac7fff0a505c08945108d795dcb877f10b816) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/FailureMechanismBaseCreateExtensions.cs (.../FailureMechanismBaseCreateExtensions.cs) (revision 5d46f6f7d54a327ba5fa13c6c8b1b10fb29be84e) @@ -22,7 +22,6 @@ using System; using Application.Ringtoets.Storage.DbContext; using Ringtoets.Common.Data.FailureMechanism; -using Ringtoets.Integration.Data.StandAlone; namespace Application.Ringtoets.Storage.Create { Index: Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/FailureMechanismType.cs =================================================================== diff -u -r164e03c3a4957d7a0dd4012f146b0ca139a7a4cc -r5d46f6f7d54a327ba5fa13c6c8b1b10fb29be84e --- Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/FailureMechanismType.cs (.../FailureMechanismType.cs) (revision 164e03c3a4957d7a0dd4012f146b0ca139a7a4cc) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/FailureMechanismType.cs (.../FailureMechanismType.cs) (revision 5d46f6f7d54a327ba5fa13c6c8b1b10fb29be84e) @@ -107,7 +107,7 @@ GrassRevetmentSlidingInwards = 16, /// - /// Sterkte en stabiliteit langsconstructires - STKWl + /// Sterkte en stabiliteit langsconstructies - STKWl /// StrengthAndStabilityParallelConstruction = 17, Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/AssessmentSectionEntityReadExtensions.cs =================================================================== diff -u -r36ed0869d04cd54d2aee0abbd0ec88100334e097 -r5d46f6f7d54a327ba5fa13c6c8b1b10fb29be84e --- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/AssessmentSectionEntityReadExtensions.cs (.../AssessmentSectionEntityReadExtensions.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/AssessmentSectionEntityReadExtensions.cs (.../AssessmentSectionEntityReadExtensions.cs) (revision 5d46f6f7d54a327ba5fa13c6c8b1b10fb29be84e) @@ -134,15 +134,21 @@ private static void ReadStandAloneFailureMechanisms(this AssessmentSectionEntity entity, AssessmentSection assessmentSection) { entity.ReadStandAloneFailureMechanism(FailureMechanismType.MacrostabilityInwards, assessmentSection.MacrostabilityInwards); + entity.ReadStandAloneFailureMechanism(FailureMechanismType.MacrostabilityOutwards, assessmentSection.MacrostabilityOutwards); + entity.ReadStandAloneFailureMechanism(FailureMechanismType.Microstability, assessmentSection.Microstability); entity.ReadStandAloneFailureMechanism(FailureMechanismType.StabilityStoneRevetment, assessmentSection.StabilityStoneCover); entity.ReadStandAloneFailureMechanism(FailureMechanismType.WaveImpactOnAsphaltRevetment, assessmentSection.WaveImpactAsphaltCover); + entity.ReadStandAloneFailureMechanism(FailureMechanismType.WaterOverpressureAsphaltRevetment, assessmentSection.WaterPressureAsphaltCover); entity.ReadStandAloneFailureMechanism(FailureMechanismType.GrassRevetmentErosionOutwards, assessmentSection.GrassCoverErosionOutwards); entity.ReadStandAloneFailureMechanism(FailureMechanismType.GrassRevetmentSlidingOutwards, assessmentSection.GrassCoverSlipOffOutwards); + entity.ReadStandAloneFailureMechanism(FailureMechanismType.GrassRevetmentSlidingInwards, assessmentSection.GrassCoverSlipOffInwards); entity.ReadStandAloneFailureMechanism(FailureMechanismType.StructureHeight, assessmentSection.HeightStructures); entity.ReadStandAloneFailureMechanism(FailureMechanismType.ReliabilityClosingOfStructure, assessmentSection.ClosingStructure); entity.ReadStandAloneFailureMechanism(FailureMechanismType.PipingAtStructure, assessmentSection.PipingStructure); entity.ReadStandAloneFailureMechanism(FailureMechanismType.StrengthAndStabilityPointConstruction, assessmentSection.StrengthStabilityPointConstruction); + entity.ReadStandAloneFailureMechanism(FailureMechanismType.StrengthAndStabilityParallelConstruction, assessmentSection.StrengthStabilityLengthwiseConstruction); entity.ReadStandAloneFailureMechanism(FailureMechanismType.DuneErosion, assessmentSection.DuneErosion); + entity.ReadStandAloneFailureMechanism(FailureMechanismType.TechnicalInnovations, assessmentSection.TechnicalInnovation); } private static void ReadStandAloneFailureMechanism(this AssessmentSectionEntity entity, FailureMechanismType failureMechanismType, IFailureMechanism standAloneFailureMechanism) Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/AssessmentSectionCreateExtensionsTest.cs =================================================================== diff -u -r7206def3cee84d518d3f7ea1b76e05e3163b8aea -r5d46f6f7d54a327ba5fa13c6c8b1b10fb29be84e --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/AssessmentSectionCreateExtensionsTest.cs (.../AssessmentSectionCreateExtensionsTest.cs) (revision 7206def3cee84d518d3f7ea1b76e05e3163b8aea) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/AssessmentSectionCreateExtensionsTest.cs (.../AssessmentSectionCreateExtensionsTest.cs) (revision 5d46f6f7d54a327ba5fa13c6c8b1b10fb29be84e) @@ -72,19 +72,25 @@ Assert.IsNotNull(entity); Assert.AreEqual((short)assessmentSectionComposition, entity.Composition); Assert.AreEqual(testName, entity.Name); - Assert.AreEqual(12, entity.FailureMechanismEntities.Count); + Assert.AreEqual(18, entity.FailureMechanismEntities.Count); Assert.IsNotNull(entity.FailureMechanismEntities.SingleOrDefault(fme => fme.FailureMechanismType == (short)FailureMechanismType.Piping)); Assert.IsNotNull(entity.FailureMechanismEntities.SingleOrDefault(fme => fme.FailureMechanismType == (short)FailureMechanismType.GrassRevetmentTopErosionAndInwards)); Assert.IsNotNull(entity.FailureMechanismEntities.SingleOrDefault(fme => fme.FailureMechanismType == (short)FailureMechanismType.MacrostabilityInwards)); + Assert.IsNotNull(entity.FailureMechanismEntities.SingleOrDefault(fme => fme.FailureMechanismType == (short)FailureMechanismType.MacrostabilityOutwards)); + Assert.IsNotNull(entity.FailureMechanismEntities.SingleOrDefault(fme => fme.FailureMechanismType == (short)FailureMechanismType.Microstability)); Assert.IsNotNull(entity.FailureMechanismEntities.SingleOrDefault(fme => fme.FailureMechanismType == (short)FailureMechanismType.StabilityStoneRevetment)); Assert.IsNotNull(entity.FailureMechanismEntities.SingleOrDefault(fme => fme.FailureMechanismType == (short)FailureMechanismType.WaveImpactOnAsphaltRevetment)); + Assert.IsNotNull(entity.FailureMechanismEntities.SingleOrDefault(fme => fme.FailureMechanismType == (short)FailureMechanismType.WaterOverpressureAsphaltRevetment)); Assert.IsNotNull(entity.FailureMechanismEntities.SingleOrDefault(fme => fme.FailureMechanismType == (short)FailureMechanismType.GrassRevetmentErosionOutwards)); Assert.IsNotNull(entity.FailureMechanismEntities.SingleOrDefault(fme => fme.FailureMechanismType == (short)FailureMechanismType.GrassRevetmentSlidingOutwards)); + Assert.IsNotNull(entity.FailureMechanismEntities.SingleOrDefault(fme => fme.FailureMechanismType == (short)FailureMechanismType.GrassRevetmentSlidingInwards)); Assert.IsNotNull(entity.FailureMechanismEntities.SingleOrDefault(fme => fme.FailureMechanismType == (short)FailureMechanismType.StructureHeight)); Assert.IsNotNull(entity.FailureMechanismEntities.SingleOrDefault(fme => fme.FailureMechanismType == (short)FailureMechanismType.ReliabilityClosingOfStructure)); Assert.IsNotNull(entity.FailureMechanismEntities.SingleOrDefault(fme => fme.FailureMechanismType == (short)FailureMechanismType.PipingAtStructure)); Assert.IsNotNull(entity.FailureMechanismEntities.SingleOrDefault(fme => fme.FailureMechanismType == (short)FailureMechanismType.StrengthAndStabilityPointConstruction)); + Assert.IsNotNull(entity.FailureMechanismEntities.SingleOrDefault(fme => fme.FailureMechanismType == (short)FailureMechanismType.StrengthAndStabilityParallelConstruction)); Assert.IsNotNull(entity.FailureMechanismEntities.SingleOrDefault(fme => fme.FailureMechanismType == (short)FailureMechanismType.DuneErosion)); + Assert.IsNotNull(entity.FailureMechanismEntities.SingleOrDefault(fme => fme.FailureMechanismType == (short)FailureMechanismType.TechnicalInnovations)); Assert.IsNull(entity.HydraulicDatabaseLocation); Assert.IsNull(entity.HydraulicDatabaseVersion); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/IntegrationTests/StorageSqLiteIntegrationTest.cs =================================================================== diff -u -r36ed0869d04cd54d2aee0abbd0ec88100334e097 -r5d46f6f7d54a327ba5fa13c6c8b1b10fb29be84e --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/IntegrationTests/StorageSqLiteIntegrationTest.cs (.../StorageSqLiteIntegrationTest.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/IntegrationTests/StorageSqLiteIntegrationTest.cs (.../StorageSqLiteIntegrationTest.cs) (revision 5d46f6f7d54a327ba5fa13c6c8b1b10fb29be84e) @@ -34,6 +34,7 @@ using Core.Common.TestUtil; using NUnit.Framework; using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.Data; using Ringtoets.Piping.Data; using Ringtoets.Piping.Primitives; @@ -83,22 +84,7 @@ } // Assert - Assert.IsInstanceOf(firstProject); - Assert.IsInstanceOf(secondProject); - - var firstProjectAssessmentSection = firstProject.Items.OfType().ToList(); - var secondProjectAssessmentSection = secondProject.Items.OfType().ToList(); - Assert.AreEqual(firstProjectAssessmentSection.Count, secondProjectAssessmentSection.Count); - for (var i = 0; i < firstProjectAssessmentSection.Count; i++) - { - Assert.AreEqual(firstProjectAssessmentSection[i].StorageId, secondProjectAssessmentSection[i].StorageId); - Assert.AreEqual(firstProjectAssessmentSection[i].Name, secondProjectAssessmentSection[i].Name); - - AssertHydraulicBoundaryDatabase(firstProjectAssessmentSection[i], secondProjectAssessmentSection[i]); - AssertReferenceLine(firstProjectAssessmentSection[i], secondProjectAssessmentSection[i]); - - AssertPipingFailureMechanism(firstProjectAssessmentSection[i].PipingFailureMechanism, secondProjectAssessmentSection[i].PipingFailureMechanism); - } + AssertProjectsAreEqual(firstProject, secondProject); } [Test] @@ -120,16 +106,7 @@ Project loadedProject = storage.LoadProject(tempRingtoetsFile); // Assert - Assert.IsInstanceOf(loadedProject); - Assert.AreNotSame(fullProject, loadedProject); - Assert.AreEqual(fullProject.Items.Count, loadedProject.Items.Count); - - var actualAssessmentSection = loadedProject.Items.OfType().FirstOrDefault(); - Assert.IsNotNull(actualAssessmentSection); - AssessmentSection expectedAssessmentSection = fullProject.Items.OfType().FirstOrDefault(); - AssertHydraulicBoundaryDatabase(expectedAssessmentSection, actualAssessmentSection); - AssertReferenceLine(expectedAssessmentSection, actualAssessmentSection); - AssertPipingFailureMechanism(expectedAssessmentSection.PipingFailureMechanism, actualAssessmentSection.PipingFailureMechanism); + AssertProjectsAreEqual(fullProject, loadedProject); } [Test] @@ -140,7 +117,7 @@ var projectStore = new StorageSqLite(); Project fullProject = RingtoetsProjectHelper.GetFullTestProject(); var expectedProjectName = Path.GetFileNameWithoutExtension(tempRingtoetsFile); - var expectedProjectDescritpion = fullProject.Description; + var expectedProjectDescription = fullProject.Description; // Precondition SqLiteDatabaseHelper.CreateValidRingtoetsDatabase(tempRingtoetsFile, fullProject); @@ -160,14 +137,9 @@ Assert.AreEqual(tempRingtoetsFile, gui.ProjectFilePath); Assert.NotNull(gui.Project); Assert.AreEqual(expectedProjectName, gui.Project.Name); - Assert.AreEqual(expectedProjectDescritpion, gui.Project.Description); + Assert.AreEqual(expectedProjectDescription, gui.Project.Description); - var actualAssessmentSection = gui.Project.Items.OfType().FirstOrDefault(); - Assert.IsNotNull(actualAssessmentSection); - AssessmentSection expectedAssessmentSection = fullProject.Items.OfType().FirstOrDefault(); - AssertHydraulicBoundaryDatabase(expectedAssessmentSection, actualAssessmentSection); - AssertReferenceLine(expectedAssessmentSection, actualAssessmentSection); - AssertPipingFailureMechanism(expectedAssessmentSection.PipingFailureMechanism, actualAssessmentSection.PipingFailureMechanism); + AssertProjectsAreEqual(gui.Project, fullProject); } // TearDown @@ -233,6 +205,55 @@ } } + private void AssertProjectsAreEqual(Project firstProject, Project secondProject) + { + Assert.IsInstanceOf(firstProject); + Assert.IsInstanceOf(secondProject); + Assert.AreNotSame(firstProject, secondProject); + + var firstProjectAssessmentSection = firstProject.Items.OfType().ToList(); + var secondProjectAssessmentSection = secondProject.Items.OfType().ToList(); + Assert.AreEqual(firstProjectAssessmentSection.Count, secondProjectAssessmentSection.Count); + for (var i = 0; i < firstProjectAssessmentSection.Count; i++) + { + Assert.AreEqual(firstProjectAssessmentSection[i].StorageId, secondProjectAssessmentSection[i].StorageId); + Assert.AreEqual(firstProjectAssessmentSection[i].Name, secondProjectAssessmentSection[i].Name); + + AssertHydraulicBoundaryDatabase(firstProjectAssessmentSection[i], secondProjectAssessmentSection[i]); + AssertReferenceLine(firstProjectAssessmentSection[i], secondProjectAssessmentSection[i]); + AssertPipingFailureMechanism(firstProjectAssessmentSection[i].PipingFailureMechanism, secondProjectAssessmentSection[i].PipingFailureMechanism); + + var firstProjectFailureMechanisms = firstProjectAssessmentSection[i].GetFailureMechanisms().ToArray(); + var secondProjectFailureMechanisms = secondProjectAssessmentSection[i].GetFailureMechanisms().ToArray(); + for (var fmi = 0; fmi < firstProjectFailureMechanisms.Length; fmi++) + { + AssertFailureMechanism(firstProjectFailureMechanisms[fmi], secondProjectFailureMechanisms[fmi]); + } + } + } + + private void AssertFailureMechanism(IFailureMechanism firstProjectFailureMechanism, IFailureMechanism secondProjectFailureMechanism) + { + Assert.AreEqual(firstProjectFailureMechanism.Name, secondProjectFailureMechanism.Name); + Assert.AreEqual(firstProjectFailureMechanism.Code, secondProjectFailureMechanism.Code); + Assert.AreEqual(firstProjectFailureMechanism.IsRelevant, secondProjectFailureMechanism.IsRelevant); + AssertFailureMechanismSections(firstProjectFailureMechanism.Sections, secondProjectFailureMechanism.Sections); + } + + private void AssertFailureMechanismSections(IEnumerable firstProjectSections, IEnumerable secondProjectSections) + { + var firstProjectSectionsArray = firstProjectSections.ToArray(); + var secondProjectSectionsArray = secondProjectSections.ToArray(); + + Assert.AreEqual(firstProjectSectionsArray.Length, secondProjectSectionsArray.Length); + + for (var i = 0; i < firstProjectSectionsArray.Length; i++) + { + Assert.AreEqual(firstProjectSectionsArray[i].Name, secondProjectSectionsArray[i].Name); + Assert.AreEqual(firstProjectSectionsArray[i].Points, secondProjectSectionsArray[i].Points); + } + } + private static void AssertHydraulicBoundaryDatabase(IAssessmentSection expectedProject, IAssessmentSection project) { Assert.IsNotNull(expectedProject.HydraulicBoundaryDatabase); @@ -250,7 +271,6 @@ } } - private static void AssertReferenceLine(IAssessmentSection expectedProject, IAssessmentSection project) { Assert.IsNotNull(expectedProject.ReferenceLine); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/AssessmentSectionEntityTest.cs =================================================================== diff -u -r213b20e92891887167ab4b031ca4a4b6250a4c2a -r5d46f6f7d54a327ba5fa13c6c8b1b10fb29be84e --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/AssessmentSectionEntityTest.cs (.../AssessmentSectionEntityTest.cs) (revision 213b20e92891887167ab4b031ca4a4b6250a4c2a) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/AssessmentSectionEntityTest.cs (.../AssessmentSectionEntityTest.cs) (revision 5d46f6f7d54a327ba5fa13c6c8b1b10fb29be84e) @@ -25,6 +25,8 @@ using Application.Ringtoets.Storage.Read; using NUnit.Framework; using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Integration.Data.StandAlone; namespace Application.Ringtoets.Storage.Test.Read { @@ -226,108 +228,76 @@ // Setup var entity = new AssessmentSectionEntity(); var macrostabilityInwardsEntityId = 2; - var overtoppingEntityId = 3; + var macrostabilityOutwardsEntityId = 3; + var microstabilityEntityId = 4; + var structureHeightEntityId = 5; var closingEntityId = 16; - var failingOfConstructionEntityId = 22; + var failingOfConstructionPointEntityId = 22; + var failingOfConstructionLengthwiseEntityId = 23; var stoneRevetmentEntityId = 36; - var asphaltRevetmentEntityId = 77; - var grassRevetmentEntityId = 133; + var waveImpactEntityId = 77; + var waterPressureEntityId = 78; + var grassCoverErosionOutwardsEntityId = 133; + var grassCoverSlipoffOutwardsEntityId = 134; + var grassCoverSlipoffInwardsEntityId = 135; var duneErosionEntityId = 256; + var technicalInnovationsEntityId = 257; - entity.FailureMechanismEntities.Add(new FailureMechanismEntity - { - FailureMechanismEntityId = macrostabilityInwardsEntityId, - FailureMechanismType = (short) FailureMechanismType.MacrostabilityInwards, - IsRelevant = Convert.ToByte(isRelevant), - FailureMechanismSectionEntities = CreateFailureMechanismSectionEntities() - }); - entity.FailureMechanismEntities.Add(new FailureMechanismEntity - { - FailureMechanismEntityId = overtoppingEntityId, - FailureMechanismType = (short) FailureMechanismType.StructureHeight, - IsRelevant = Convert.ToByte(isRelevant), - FailureMechanismSectionEntities = CreateFailureMechanismSectionEntities() - }); - entity.FailureMechanismEntities.Add(new FailureMechanismEntity - { - FailureMechanismEntityId = closingEntityId, - FailureMechanismType = (short) FailureMechanismType.ReliabilityClosingOfStructure, - IsRelevant = Convert.ToByte(isRelevant), - FailureMechanismSectionEntities = CreateFailureMechanismSectionEntities() - }); - entity.FailureMechanismEntities.Add(new FailureMechanismEntity - { - FailureMechanismEntityId = failingOfConstructionEntityId, - FailureMechanismType = (short) FailureMechanismType.StrengthAndStabilityPointConstruction, - IsRelevant = Convert.ToByte(isRelevant), - FailureMechanismSectionEntities = CreateFailureMechanismSectionEntities() - }); - entity.FailureMechanismEntities.Add(new FailureMechanismEntity - { - FailureMechanismEntityId = stoneRevetmentEntityId, - FailureMechanismType = (short) FailureMechanismType.StabilityStoneRevetment, - IsRelevant = Convert.ToByte(isRelevant), - FailureMechanismSectionEntities = CreateFailureMechanismSectionEntities() - }); - entity.FailureMechanismEntities.Add(new FailureMechanismEntity - { - FailureMechanismEntityId = asphaltRevetmentEntityId, - FailureMechanismType = (short) FailureMechanismType.WaveImpactOnAsphaltRevetment, - IsRelevant = Convert.ToByte(isRelevant), - FailureMechanismSectionEntities = CreateFailureMechanismSectionEntities() - }); - entity.FailureMechanismEntities.Add(new FailureMechanismEntity - { - FailureMechanismEntityId = grassRevetmentEntityId, - FailureMechanismType = (short) FailureMechanismType.GrassRevetmentErosionOutwards, - IsRelevant = Convert.ToByte(isRelevant), - FailureMechanismSectionEntities = CreateFailureMechanismSectionEntities() - }); - entity.FailureMechanismEntities.Add(new FailureMechanismEntity - { - FailureMechanismEntityId = duneErosionEntityId, - FailureMechanismType = (short) FailureMechanismType.DuneErosion, - IsRelevant = Convert.ToByte(isRelevant), - FailureMechanismSectionEntities = CreateFailureMechanismSectionEntities() - }); + entity.FailureMechanismEntities.Add(CreateFailureMechanismEntity(isRelevant, macrostabilityInwardsEntityId, FailureMechanismType.MacrostabilityInwards)); + entity.FailureMechanismEntities.Add(CreateFailureMechanismEntity(isRelevant, macrostabilityOutwardsEntityId, FailureMechanismType.MacrostabilityOutwards)); + entity.FailureMechanismEntities.Add(CreateFailureMechanismEntity(isRelevant, microstabilityEntityId, FailureMechanismType.Microstability)); + entity.FailureMechanismEntities.Add(CreateFailureMechanismEntity(isRelevant, structureHeightEntityId, FailureMechanismType.StructureHeight)); + entity.FailureMechanismEntities.Add(CreateFailureMechanismEntity(isRelevant, closingEntityId, FailureMechanismType.ReliabilityClosingOfStructure)); + entity.FailureMechanismEntities.Add(CreateFailureMechanismEntity(isRelevant, failingOfConstructionPointEntityId, FailureMechanismType.StrengthAndStabilityPointConstruction)); + entity.FailureMechanismEntities.Add(CreateFailureMechanismEntity(isRelevant, failingOfConstructionLengthwiseEntityId, FailureMechanismType.StrengthAndStabilityParallelConstruction)); + entity.FailureMechanismEntities.Add(CreateFailureMechanismEntity(isRelevant, stoneRevetmentEntityId, FailureMechanismType.StabilityStoneRevetment)); + entity.FailureMechanismEntities.Add(CreateFailureMechanismEntity(isRelevant, waveImpactEntityId, FailureMechanismType.WaveImpactOnAsphaltRevetment)); + entity.FailureMechanismEntities.Add(CreateFailureMechanismEntity(isRelevant, waterPressureEntityId, FailureMechanismType.WaterOverpressureAsphaltRevetment)); + entity.FailureMechanismEntities.Add(CreateFailureMechanismEntity(isRelevant, grassCoverErosionOutwardsEntityId, FailureMechanismType.GrassRevetmentErosionOutwards)); + entity.FailureMechanismEntities.Add(CreateFailureMechanismEntity(isRelevant, grassCoverSlipoffOutwardsEntityId, FailureMechanismType.GrassRevetmentSlidingOutwards)); + entity.FailureMechanismEntities.Add(CreateFailureMechanismEntity(isRelevant, grassCoverSlipoffInwardsEntityId, FailureMechanismType.GrassRevetmentSlidingInwards)); + entity.FailureMechanismEntities.Add(CreateFailureMechanismEntity(isRelevant, duneErosionEntityId, FailureMechanismType.DuneErosion)); + entity.FailureMechanismEntities.Add(CreateFailureMechanismEntity(isRelevant, technicalInnovationsEntityId, FailureMechanismType.TechnicalInnovations)); var collector = new ReadConversionCollector(); // Call var section = entity.Read(collector); // Assert - Assert.AreEqual(macrostabilityInwardsEntityId, section.MacrostabilityInwards.StorageId); - Assert.AreEqual(isRelevant, section.MacrostabilityInwards.IsRelevant); - Assert.AreEqual(2, section.MacrostabilityInwards.Sections.Count()); + AssertFailureMechanismEqual(isRelevant, macrostabilityInwardsEntityId, 2, section.MacrostabilityInwards); + AssertFailureMechanismEqual(isRelevant, macrostabilityOutwardsEntityId, 2, section.MacrostabilityOutwards); + AssertFailureMechanismEqual(isRelevant, microstabilityEntityId, 2, section.Microstability); + AssertFailureMechanismEqual(isRelevant, structureHeightEntityId, 2, section.HeightStructures); + AssertFailureMechanismEqual(isRelevant, closingEntityId, 2, section.ClosingStructure); + AssertFailureMechanismEqual(isRelevant, failingOfConstructionPointEntityId, 2, section.StrengthStabilityPointConstruction); + AssertFailureMechanismEqual(isRelevant, failingOfConstructionLengthwiseEntityId, 2, section.StrengthStabilityLengthwiseConstruction); + AssertFailureMechanismEqual(isRelevant, stoneRevetmentEntityId, 2, section.StabilityStoneCover); + AssertFailureMechanismEqual(isRelevant, waveImpactEntityId, 2, section.WaveImpactAsphaltCover); + AssertFailureMechanismEqual(isRelevant, waterPressureEntityId, 2, section.WaterPressureAsphaltCover); + AssertFailureMechanismEqual(isRelevant, grassCoverErosionOutwardsEntityId, 2, section.GrassCoverErosionOutwards); + AssertFailureMechanismEqual(isRelevant, grassCoverSlipoffOutwardsEntityId, 2, section.GrassCoverSlipOffOutwards); + AssertFailureMechanismEqual(isRelevant, grassCoverSlipoffInwardsEntityId, 2, section.GrassCoverSlipOffInwards); + AssertFailureMechanismEqual(isRelevant, duneErosionEntityId, 2, section.DuneErosion); + AssertFailureMechanismEqual(isRelevant, technicalInnovationsEntityId, 2, section.TechnicalInnovation); + } - Assert.AreEqual(overtoppingEntityId, section.HeightStructures.StorageId); - Assert.AreEqual(isRelevant, section.HeightStructures.IsRelevant); - Assert.AreEqual(2, section.HeightStructures.Sections.Count()); + private static FailureMechanismEntity CreateFailureMechanismEntity(bool isRelevant, int entityId, FailureMechanismType failureMechanismType) + { + return new FailureMechanismEntity + { + FailureMechanismEntityId = entityId, + FailureMechanismType = (short) failureMechanismType, + IsRelevant = Convert.ToByte(isRelevant), + FailureMechanismSectionEntities = CreateFailureMechanismSectionEntities() + }; + } - Assert.AreEqual(closingEntityId, section.ClosingStructure.StorageId); - Assert.AreEqual(isRelevant, section.ClosingStructure.IsRelevant); - Assert.AreEqual(2, section.ClosingStructure.Sections.Count()); - - Assert.AreEqual(failingOfConstructionEntityId, section.StrengthStabilityPointConstruction.StorageId); - Assert.AreEqual(isRelevant, section.StrengthStabilityPointConstruction.IsRelevant); - Assert.AreEqual(2, section.StrengthStabilityPointConstruction.Sections.Count()); - - Assert.AreEqual(stoneRevetmentEntityId, section.StabilityStoneCover.StorageId); - Assert.AreEqual(isRelevant, section.StabilityStoneCover.IsRelevant); - Assert.AreEqual(2, section.StabilityStoneCover.Sections.Count()); - - Assert.AreEqual(asphaltRevetmentEntityId, section.WaveImpactAsphaltCover.StorageId); - Assert.AreEqual(isRelevant, section.WaveImpactAsphaltCover.IsRelevant); - Assert.AreEqual(2, section.WaveImpactAsphaltCover.Sections.Count()); - - Assert.AreEqual(grassRevetmentEntityId, section.GrassCoverErosionOutwards.StorageId); - Assert.AreEqual(isRelevant, section.GrassCoverErosionOutwards.IsRelevant); - Assert.AreEqual(2, section.GrassCoverErosionOutwards.Sections.Count()); - - Assert.AreEqual(duneErosionEntityId, section.DuneErosion.StorageId); - Assert.AreEqual(isRelevant, section.DuneErosion.IsRelevant); - Assert.AreEqual(2, section.DuneErosion.Sections.Count()); + private static void AssertFailureMechanismEqual(bool isRelevant, int entityId, int sectionCount, IFailureMechanism failureMechanism) + { + Assert.AreEqual(entityId, failureMechanism.StorageId); + Assert.AreEqual(isRelevant, failureMechanism.IsRelevant); + Assert.AreEqual(sectionCount, failureMechanism.Sections.Count()); } private static FailureMechanismSectionEntity[] CreateFailureMechanismSectionEntities() Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/AssessmentSectionUpdateExtensionsTest.cs =================================================================== diff -u -r36ed0869d04cd54d2aee0abbd0ec88100334e097 -r5d46f6f7d54a327ba5fa13c6c8b1b10fb29be84e --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/AssessmentSectionUpdateExtensionsTest.cs (.../AssessmentSectionUpdateExtensionsTest.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/AssessmentSectionUpdateExtensionsTest.cs (.../AssessmentSectionUpdateExtensionsTest.cs) (revision 5d46f6f7d54a327ba5fa13c6c8b1b10fb29be84e) @@ -32,6 +32,7 @@ using NUnit.Framework; using Rhino.Mocks; using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.HydraRing.Data; using Ringtoets.Integration.Data; @@ -40,6 +41,8 @@ [TestFixture] public class AssessmentSectionUpdateExtensionsTest { + private int totalAmountOfFailureMechanismsInAssessmentSection = 18; + [Test] public void Update_WithoutContext_ThrowsArgumentNullException() { @@ -430,98 +433,66 @@ var ringtoetsEntities = RingtoetsEntitiesHelper.Create(mocks); mocks.ReplayAll(); - var section = InitializeCreatedDikeAssessmentSection(); section.StorageId = 1; - section.MacrostabilityInwards.StorageId = 1; - section.MacrostabilityInwards.Contribution = 0.5; - section.MacrostabilityInwards.IsRelevant = true; - section.HeightStructures.StorageId = 2; - section.HeightStructures.Contribution = 0.5; - section.HeightStructures.IsRelevant = true; - section.ClosingStructure.StorageId = 3; - section.ClosingStructure.Contribution = 0.5; - section.ClosingStructure.IsRelevant = true; - section.StrengthStabilityPointConstruction.StorageId = 4; - section.StrengthStabilityPointConstruction.Contribution = 0.5; - section.StrengthStabilityPointConstruction.IsRelevant = true; - section.StabilityStoneCover.StorageId = 5; - section.StabilityStoneCover.Contribution = 0.5; - section.StabilityStoneCover.IsRelevant = true; - section.WaveImpactAsphaltCover.StorageId = 6; - section.WaveImpactAsphaltCover.Contribution = 0.5; - section.WaveImpactAsphaltCover.IsRelevant = true; - section.GrassCoverErosionOutwards.StorageId = 7; - section.GrassCoverErosionOutwards.Contribution = 0.5; - section.GrassCoverErosionOutwards.IsRelevant = true; - section.DuneErosion.StorageId = 8; - section.DuneErosion.Contribution = 0.5; - section.DuneErosion.IsRelevant = true; - var macrostabilityInwardsEntity = new FailureMechanismEntity - { - FailureMechanismEntityId = 1, - IsRelevant = Convert.ToByte(false) - }; - var overtoppingEntity = new FailureMechanismEntity - { - FailureMechanismEntityId = 2, - IsRelevant = Convert.ToByte(false) - }; - var closingEntity = new FailureMechanismEntity - { - FailureMechanismEntityId = 3, - IsRelevant = Convert.ToByte(false) - }; - var failingOfConstructionEntity = new FailureMechanismEntity - { - FailureMechanismEntityId = 4, - IsRelevant = Convert.ToByte(false) - }; - var stoneRevetmentEntity = new FailureMechanismEntity - { - FailureMechanismEntityId = 5, - IsRelevant = Convert.ToByte(false) - }; - var asphaltRevetmentEntity = new FailureMechanismEntity - { - FailureMechanismEntityId = 6, - IsRelevant = Convert.ToByte(false) - }; - var grassRevetmentEntity = new FailureMechanismEntity - { - FailureMechanismEntityId = 7, - IsRelevant = Convert.ToByte(false) - }; - var duneErosionEntity = new FailureMechanismEntity - { - FailureMechanismEntityId = 8, - IsRelevant = Convert.ToByte(false) - }; + int id = 1; + var macrostabilityInwardsEntity = InitializeModelAndCreateEntity(section.MacrostabilityInwards, id++); + var macrostabilityOutwardsEntity = InitializeModelAndCreateEntity(section.MacrostabilityOutwards, id++); + var microstabilityEntity = InitializeModelAndCreateEntity(section.Microstability, id++); + var stabilityStoneCoverEntity = InitializeModelAndCreateEntity(section.StabilityStoneCover, id++); + var waveImpactAsphaltCoverEntity = InitializeModelAndCreateEntity(section.WaveImpactAsphaltCover, id++); + var waterPressureAsphaltCoverEntity = InitializeModelAndCreateEntity(section.WaterPressureAsphaltCover, id++); + var grassCoverErosionOutwardsEntity = InitializeModelAndCreateEntity(section.GrassCoverErosionOutwards, id++); + var grassCoverSlipOffOutwardsEntity = InitializeModelAndCreateEntity(section.GrassCoverSlipOffOutwards, id++); + var grassCoverSlipOffInwardsEntity = InitializeModelAndCreateEntity(section.GrassCoverSlipOffInwards, id++); + var heightStructuresEntity = InitializeModelAndCreateEntity(section.HeightStructures, id++); + var closingStructuresEntity = InitializeModelAndCreateEntity(section.ClosingStructure, id++); + var strengthStabilityPointConstructionEntity = InitializeModelAndCreateEntity(section.StrengthStabilityPointConstruction, id++); + var strengthStabilityLengthwiseConstructionEntity = InitializeModelAndCreateEntity(section.StrengthStabilityLengthwiseConstruction, id++); + var duneErosionEntity = InitializeModelAndCreateEntity(section.DuneErosion, id++); + var technicalInnovationEntity = InitializeModelAndCreateEntity(section.TechnicalInnovation, id++); + var entity = new AssessmentSectionEntity { AssessmentSectionEntityId = 1, FailureMechanismEntities = { macrostabilityInwardsEntity, - overtoppingEntity, - closingEntity, - failingOfConstructionEntity, - stoneRevetmentEntity, - asphaltRevetmentEntity, - grassRevetmentEntity, - duneErosionEntity + macrostabilityOutwardsEntity, + microstabilityEntity, + stabilityStoneCoverEntity, + waveImpactAsphaltCoverEntity, + waterPressureAsphaltCoverEntity, + grassCoverErosionOutwardsEntity, + grassCoverSlipOffOutwardsEntity, + grassCoverSlipOffInwardsEntity, + heightStructuresEntity, + closingStructuresEntity, + strengthStabilityPointConstructionEntity, + strengthStabilityLengthwiseConstructionEntity, + duneErosionEntity, + technicalInnovationEntity } }; ringtoetsEntities.AssessmentSectionEntities.Add(entity); + ringtoetsEntities.FailureMechanismEntities.Add(macrostabilityInwardsEntity); - ringtoetsEntities.FailureMechanismEntities.Add(overtoppingEntity); - ringtoetsEntities.FailureMechanismEntities.Add(closingEntity); - ringtoetsEntities.FailureMechanismEntities.Add(failingOfConstructionEntity); - ringtoetsEntities.FailureMechanismEntities.Add(stoneRevetmentEntity); - ringtoetsEntities.FailureMechanismEntities.Add(asphaltRevetmentEntity); - ringtoetsEntities.FailureMechanismEntities.Add(grassRevetmentEntity); + ringtoetsEntities.FailureMechanismEntities.Add(macrostabilityOutwardsEntity); + ringtoetsEntities.FailureMechanismEntities.Add(microstabilityEntity); + ringtoetsEntities.FailureMechanismEntities.Add(stabilityStoneCoverEntity); + ringtoetsEntities.FailureMechanismEntities.Add(waveImpactAsphaltCoverEntity); + ringtoetsEntities.FailureMechanismEntities.Add(waterPressureAsphaltCoverEntity); + ringtoetsEntities.FailureMechanismEntities.Add(grassCoverErosionOutwardsEntity); + ringtoetsEntities.FailureMechanismEntities.Add(grassCoverSlipOffOutwardsEntity); + ringtoetsEntities.FailureMechanismEntities.Add(grassCoverSlipOffInwardsEntity); + ringtoetsEntities.FailureMechanismEntities.Add(heightStructuresEntity); + ringtoetsEntities.FailureMechanismEntities.Add(closingStructuresEntity); + ringtoetsEntities.FailureMechanismEntities.Add(strengthStabilityPointConstructionEntity); + ringtoetsEntities.FailureMechanismEntities.Add(strengthStabilityLengthwiseConstructionEntity); ringtoetsEntities.FailureMechanismEntities.Add(duneErosionEntity); + ringtoetsEntities.FailureMechanismEntities.Add(technicalInnovationEntity); + FillWithFailureMechanismEntities(ringtoetsEntities.FailureMechanismEntities); // Call @@ -531,70 +502,115 @@ CollectionAssert.AreEqual(new[] { macrostabilityInwardsEntity, - overtoppingEntity, - closingEntity, - failingOfConstructionEntity, - stoneRevetmentEntity, - asphaltRevetmentEntity, - grassRevetmentEntity, - duneErosionEntity + macrostabilityOutwardsEntity, + microstabilityEntity, + stabilityStoneCoverEntity, + waveImpactAsphaltCoverEntity, + waterPressureAsphaltCoverEntity, + grassCoverErosionOutwardsEntity, + grassCoverSlipOffOutwardsEntity, + grassCoverSlipOffInwardsEntity, + heightStructuresEntity, + closingStructuresEntity, + strengthStabilityPointConstructionEntity, + strengthStabilityLengthwiseConstructionEntity, + duneErosionEntity, + technicalInnovationEntity }, entity.FailureMechanismEntities); mocks.VerifyAll(); } + private FailureMechanismEntity InitializeModelAndCreateEntity(IFailureMechanism failureMechanism, long id) + { + failureMechanism.StorageId = id; + failureMechanism.IsRelevant = true; + failureMechanism.Contribution = new Random(21).NextDouble(); + + return new FailureMechanismEntity + { + FailureMechanismEntityId = id, + IsRelevant = Convert.ToByte(false) + }; + } + private AssessmentSection InitializeCreatedDikeAssessmentSection(AssessmentSectionComposition composition = AssessmentSectionComposition.Dike) { + var failureMechanismId = 1; return new AssessmentSection(composition) { StorageId = 1, PipingFailureMechanism = { - StorageId = 1 + StorageId = failureMechanismId++ }, GrassCoverErosionInwards = { - StorageId = 2 + StorageId = failureMechanismId++ }, MacrostabilityInwards = { - StorageId = 3 + StorageId = failureMechanismId++ }, + MacrostabilityOutwards = + { + StorageId = failureMechanismId++ + }, + Microstability = + { + StorageId = failureMechanismId++ + }, HeightStructures = { - StorageId = 4 + StorageId = failureMechanismId++ }, ClosingStructure = { - StorageId = 5 + StorageId = failureMechanismId++ }, StrengthStabilityPointConstruction = { - StorageId = 6 + StorageId = failureMechanismId++ }, + StrengthStabilityLengthwiseConstruction = + { + StorageId = failureMechanismId++ + }, StabilityStoneCover = { - StorageId = 7 + StorageId = failureMechanismId++ }, WaveImpactAsphaltCover = { - StorageId = 8 + StorageId = failureMechanismId++ }, + WaterPressureAsphaltCover = + { + StorageId = failureMechanismId++ + }, GrassCoverErosionOutwards = { - StorageId = 9 + StorageId = failureMechanismId++ }, GrassCoverSlipOffOutwards = { - StorageId = 10 + StorageId = failureMechanismId++ }, + GrassCoverSlipOffInwards = + { + StorageId = failureMechanismId++ + }, PipingStructure = { - StorageId = 11 + StorageId = failureMechanismId++ }, DuneErosion = { - StorageId = 12 + StorageId = failureMechanismId++ + }, + TechnicalInnovation = + { + StorageId = failureMechanismId++ } }; } @@ -609,7 +625,7 @@ } var count = failureMechanismEntities.Count(); - for (var i = 1; i <= 12 - count; i++) + for (var i = 1; i <= totalAmountOfFailureMechanismsInAssessmentSection - count; i++) { failureMechanismEntities.Add(new FailureMechanismEntity { Index: Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/Application.Ringtoets.Storage.TestUtil.csproj =================================================================== diff -u -r6d514ec60f68620d78015ac58ba6a966ef6b14e3 -r5d46f6f7d54a327ba5fa13c6c8b1b10fb29be84e --- Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/Application.Ringtoets.Storage.TestUtil.csproj (.../Application.Ringtoets.Storage.TestUtil.csproj) (revision 6d514ec60f68620d78015ac58ba6a966ef6b14e3) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/Application.Ringtoets.Storage.TestUtil.csproj (.../Application.Ringtoets.Storage.TestUtil.csproj) (revision 5d46f6f7d54a327ba5fa13c6c8b1b10fb29be84e) @@ -86,6 +86,14 @@ {d4200f43-3f72-4f42-af0a-8ced416a38ec} Ringtoets.Common.Data + + {90de728e-48ef-4665-ab38-3d88e41d9f4d} + Ringtoets.GrassCoverErosionInwards.Data + + + {1c0017d8-35b5-4ca0-8fc7-a83f46dbdc99} + Ringtoets.HeightStructures.Data + {70F8CC9C-5BC8-4FB2-B201-EAE7FA8088C2} Ringtoets.HydraRing.Data Index: Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectHelper.cs =================================================================== diff -u -r36ed0869d04cd54d2aee0abbd0ec88100334e097 -r5d46f6f7d54a327ba5fa13c6c8b1b10fb29be84e --- Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectHelper.cs (.../RingtoetsProjectHelper.cs) (revision 36ed0869d04cd54d2aee0abbd0ec88100334e097) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectHelper.cs (.../RingtoetsProjectHelper.cs) (revision 5d46f6f7d54a327ba5fa13c6c8b1b10fb29be84e) @@ -20,9 +20,11 @@ // All rights reserved. using System.Collections.Generic; +using System.Linq; using Core.Common.Base.Data; using Core.Common.Base.Geometry; using Ringtoets.Common.Data.AssessmentSection; +using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.HydraRing.Data; using Ringtoets.Integration.Data; using Ringtoets.Piping.Data; @@ -42,7 +44,7 @@ /// A new complete instance of . public static Project GetFullTestProject() { - return new Project + var fullTestProject = new Project { Name = "tempProjectFile", Description = "description", @@ -80,8 +82,47 @@ } } }; + + AddSections(fullTestProject.Items.OfType().First().PipingFailureMechanism); + AddSections(fullTestProject.Items.OfType().First().GrassCoverErosionInwards); + AddSections(fullTestProject.Items.OfType().First().MacrostabilityInwards); + AddSections(fullTestProject.Items.OfType().First().MacrostabilityOutwards); + AddSections(fullTestProject.Items.OfType().First().Microstability); + AddSections(fullTestProject.Items.OfType().First().StabilityStoneCover); + AddSections(fullTestProject.Items.OfType().First().WaveImpactAsphaltCover); + AddSections(fullTestProject.Items.OfType().First().WaterPressureAsphaltCover); + AddSections(fullTestProject.Items.OfType().First().GrassCoverErosionOutwards); + AddSections(fullTestProject.Items.OfType().First().GrassCoverSlipOffOutwards); + AddSections(fullTestProject.Items.OfType().First().GrassCoverSlipOffInwards); + AddSections(fullTestProject.Items.OfType().First().HeightStructures); + AddSections(fullTestProject.Items.OfType().First().ClosingStructure); + AddSections(fullTestProject.Items.OfType().First().StrengthStabilityPointConstruction); + AddSections(fullTestProject.Items.OfType().First().StrengthStabilityLengthwiseConstruction); + AddSections(fullTestProject.Items.OfType().First().PipingStructure); + AddSections(fullTestProject.Items.OfType().First().DuneErosion); + AddSections(fullTestProject.Items.OfType().First().TechnicalInnovation); + return fullTestProject; } + private static void AddSections(IFailureMechanism failureMechanism) + { + failureMechanism.AddSection(new FailureMechanismSection("section 1", new[] + { + new Point2D(0, 2), + new Point2D(2, 3) + })); + failureMechanism.AddSection(new FailureMechanismSection("section 2", new[] + { + new Point2D(2, 3), + new Point2D(4, 5) + })); + failureMechanism.AddSection(new FailureMechanismSection("section 3", new[] + { + new Point2D(4, 5), + new Point2D(2, 3) + })); + } + private static RingtoetsPipingSurfaceLine GetSurfaceLine() { var surfaceLine = new RingtoetsPipingSurfaceLine