private static PersistableSoilLayerCollection CreateSoilLayerCollection(IMacroStabilityInwardsSoilProfileUnderSurfaceLine soilProfile, MacroStabilityInwardsExportStageType stageType, IdFactory idFactory, MacroStabilityInwardsExportRegistry registry) { var soilLayerCollection = new PersistableSoilLayerCollection { Id = idFactory.Create(), SoilLayers = MacroStabilityInwardsSoilProfile2DLayersHelper.GetLayersRecursively(soilProfile.Layers) .Select(l => Create(l, stageType, registry)) .ToArray() }; registry.AddSoilLayer(stageType, soilLayerCollection.Id); return(soilLayerCollection); }
/// <summary> /// Asserts whether the <see cref="PersistableSoilLayerCollection"/> contains the data /// that is representative for the <paramref name="layers"/>. /// </summary> /// <param name="layers">The layers that contain the original data.</param> /// <param name="soilLayerCollections">The <see cref="PersistableSoilLayerCollection"/> /// that needs to be asserted.</param> /// <param name="soils">The soils that are used.</param> /// <param name="geometries">The geometries that are used.</param> /// <exception cref="AssertionException">Thrown when the data in <paramref name="soilLayerCollections"/> /// is not correct.</exception> public static void AssertPersistableSoilLayers(IEnumerable <MacroStabilityInwardsSoilLayer2D> layers, IEnumerable <PersistableSoilLayerCollection> soilLayerCollections, IEnumerable <PersistableSoil> soils, IEnumerable <PersistableGeometry> geometries) { Assert.AreEqual(2, soilLayerCollections.Count()); IEnumerable <MacroStabilityInwardsSoilLayer2D> originalLayers = MacroStabilityInwardsSoilProfile2DLayersHelper.GetLayersRecursively(layers); for (var i = 0; i < soilLayerCollections.Count(); i++) { PersistableSoilLayerCollection soilLayerCollection = soilLayerCollections.ElementAt(i); Assert.IsNotNull(soilLayerCollection.Id); Assert.AreEqual(originalLayers.Count(), soilLayerCollection.SoilLayers.Count()); for (var j = 0; j < originalLayers.Count(); j++) { PersistableSoilLayer persistableSoilLayer = soilLayerCollection.SoilLayers.ElementAt(j); Assert.AreEqual(soils.ElementAt(j).Id, persistableSoilLayer.SoilId); Assert.AreEqual(geometries.ElementAt(i).Layers.ElementAt(j).Id, persistableSoilLayer.LayerId); } } }
public void Create_WithValidData_ReturnsStages() { // Setup var idFactory = new IdFactory(); var registry = new MacroStabilityInwardsExportRegistry(); var stageTypes = new[] { MacroStabilityInwardsExportStageType.Daily, MacroStabilityInwardsExportStageType.Extreme }; var settingsList = new List <PersistableCalculationSettings>(); var geometryList = new List <PersistableGeometry>(); var soilLayersList = new List <PersistableSoilLayerCollection>(); var waternetList = new List <PersistableWaternet>(); var waternetCreatorSettingsList = new List <PersistableWaternetCreatorSettings>(); var stateList = new List <PersistableState>(); foreach (MacroStabilityInwardsExportStageType stageType in stageTypes) { var settings = new PersistableCalculationSettings { Id = idFactory.Create() }; settingsList.Add(settings); var geometry = new PersistableGeometry { Id = idFactory.Create() }; geometryList.Add(geometry); var persistableSoilLayerCollection = new PersistableSoilLayerCollection { Id = idFactory.Create() }; soilLayersList.Add(persistableSoilLayerCollection); var waternet = new PersistableWaternet { Id = idFactory.Create() }; waternetList.Add(waternet); var waternetCreatorSettings = new PersistableWaternetCreatorSettings { Id = idFactory.Create() }; waternetCreatorSettingsList.Add(waternetCreatorSettings); var state = new PersistableState { Id = idFactory.Create() }; stateList.Add(state); registry.AddSettings(stageType, settings.Id); registry.AddGeometry(stageType, geometry.Id); registry.AddSoilLayer(stageType, persistableSoilLayerCollection.Id); registry.AddWaternet(stageType, waternet.Id); registry.AddWaternetCreatorSettings(stageType, waternetCreatorSettings.Id); registry.AddState(stageType, state.Id); } // Call IEnumerable <PersistableStage> stages = PersistableStageFactory.Create(idFactory, registry); // Assert PersistableDataModelTestHelper.AssertStages(stages, settingsList, geometryList, soilLayersList, waternetList, waternetCreatorSettingsList, stateList); }