Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/FailureMechanismEntityReadExtensions.cs =================================================================== diff -u -rc9cee4b6d3ce28471a0054fa2bce21ce9e4c60f8 -r5dae54648aee26e6eefb07abd0268f98acf4b174 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/FailureMechanismEntityReadExtensions.cs (.../FailureMechanismEntityReadExtensions.cs) (revision c9cee4b6d3ce28471a0054fa2bce21ce9e4c60f8) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/FailureMechanismEntityReadExtensions.cs (.../FailureMechanismEntityReadExtensions.cs) (revision 5dae54648aee26e6eefb07abd0268f98acf4b174) @@ -264,7 +264,7 @@ entity.ReadCommonFailureMechanismProperties(failureMechanism, collector); entity.ReadHeightStructuresMechanismSectionResults(failureMechanism, collector); entity.ReadForeshoreProfiles(failureMechanism.ForeshoreProfiles, metaEntity.ForeshoreProfileCollectionSourcePath, collector); - entity.ReadHeightStructures(metaEntity, failureMechanism.HeightStructures, collector); + entity.ReadHeightStructures(metaEntity.HeightStructureCollectionSourcePath, failureMechanism.HeightStructures, collector); entity.ReadGeneralInput(failureMechanism.GeneralInput); ReadHeightStructuresRootCalculationGroup(entity.CalculationGroupEntity, failureMechanism.CalculationsGroup, collector); } @@ -283,15 +283,15 @@ } private static void ReadHeightStructures(this FailureMechanismEntity entity, - HeightStructuresFailureMechanismMetaEntity metaEntity, + string sourcePath, StructureCollection heightStructures, ReadConversionCollector collector) { - if (metaEntity.HeightStructureCollectionSourcePath != null) + if (sourcePath != null) { heightStructures.AddRange(entity.HeightStructureEntities.OrderBy(fpe => fpe.Order) .Select(structureEntity => structureEntity.Read(collector)), - metaEntity.HeightStructureCollectionSourcePath); + sourcePath); } } Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/HeightStructures/HeightStructuresFailureMechanismCreateExtensionsTest.cs =================================================================== diff -u -rc9cee4b6d3ce28471a0054fa2bce21ce9e4c60f8 -r5dae54648aee26e6eefb07abd0268f98acf4b174 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/HeightStructures/HeightStructuresFailureMechanismCreateExtensionsTest.cs (.../HeightStructuresFailureMechanismCreateExtensionsTest.cs) (revision c9cee4b6d3ce28471a0054fa2bce21ce9e4c60f8) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/HeightStructures/HeightStructuresFailureMechanismCreateExtensionsTest.cs (.../HeightStructuresFailureMechanismCreateExtensionsTest.cs) (revision 5dae54648aee26e6eefb07abd0268f98acf4b174) @@ -101,7 +101,7 @@ const string originalInput = "Some input text"; const string originalOutput = "Some output text"; const string originalNotRelevantText = "Really not relevant"; - const string originalSourcePath = "Really not relevant"; + const string originalSourcePath = "some output path"; var failureMechanism = new HeightStructuresFailureMechanism { InputComments = @@ -234,6 +234,27 @@ } [Test] + public void Create_WithoutHeightStructuresWithSourcePath_EmptyHeightStructureEntitiesWithSourcePath() + { + // Setup + const string originalSourcePath = "some output path"; + var failureMechanism = new HeightStructuresFailureMechanism(); + failureMechanism.HeightStructures.AddRange(Enumerable.Empty(), originalSourcePath); + + var persistenceRegistry = new PersistenceRegistry(); + + // Call + FailureMechanismEntity entity = failureMechanism.Create(persistenceRegistry); + + // Assert + Assert.AreEqual(0, entity.HeightStructureEntities.Count); + + HeightStructuresFailureMechanismMetaEntity metaEntity = + entity.HeightStructuresFailureMechanismMetaEntities.Single(); + Assert.AreEqual(originalSourcePath, metaEntity.HeightStructureCollectionSourcePath); + } + + [Test] public void Create_WithHeightStructures_HeightStructureEntitiesCreated() { // Setup Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/FailureMechanismEntityReadExtensionsTest.cs =================================================================== diff -u -rc9cee4b6d3ce28471a0054fa2bce21ce9e4c60f8 -r5dae54648aee26e6eefb07abd0268f98acf4b174 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/FailureMechanismEntityReadExtensionsTest.cs (.../FailureMechanismEntityReadExtensionsTest.cs) (revision c9cee4b6d3ce28471a0054fa2bce21ce9e4c60f8) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/FailureMechanismEntityReadExtensionsTest.cs (.../FailureMechanismEntityReadExtensionsTest.cs) (revision 5dae54648aee26e6eefb07abd0268f98acf4b174) @@ -1275,6 +1275,33 @@ Assert.AreEqual(sourcePath, failureMechanism.HeightStructures.SourcePath); } + [Test] + public void ReadAsHeightStructuresFailureMechanism_WithoutStructuresWithPath_ReturnFailureMechanismWithSourcePathSet() + { + // Setup + const string sourcePath = "Some path"; + var entity = new FailureMechanismEntity + { + CalculationGroupEntity = new CalculationGroupEntity(), + HeightStructuresFailureMechanismMetaEntities = + { + new HeightStructuresFailureMechanismMetaEntity + { + N = 7, + HeightStructureCollectionSourcePath = sourcePath + } + } + }; + var collector = new ReadConversionCollector(); + var failureMechanism = new HeightStructuresFailureMechanism(); + + // Call + entity.ReadAsHeightStructuresFailureMechanism(failureMechanism, collector); + + // Assert + Assert.AreEqual(sourcePath, failureMechanism.HeightStructures.SourcePath); + } + #endregion #region Closing Structures