// Copyright (C) Stichting Deltares 2016. All rights reserved. // // This file is part of Ringtoets. // // Ringtoets is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // All names, logos, and references to "Deltares" are registered trademarks of // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. using System; using System.Data.Entity; using System.Linq; using Application.Ringtoets.Storage.Create; using Application.Ringtoets.Storage.DbContext; using Application.Ringtoets.Storage.Exceptions; using Application.Ringtoets.Storage.TestUtil; using Application.Ringtoets.Storage.Update; using Core.Common.Base.Geometry; using NUnit.Framework; using Rhino.Mocks; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.HydraRing.Data; using Ringtoets.Integration.Data; namespace Application.Ringtoets.Storage.Test.Update { [TestFixture] public class AssessmentSectionUpdateExtensionsTest { private readonly int totalAmountOfFailureMechanismsInAssessmentSection = 18; [Test] public void Update_WithoutContext_ThrowsArgumentNullException() { // Setup var section = new AssessmentSection(AssessmentSectionComposition.Dike); // Call TestDelegate test = () => section.Update(new PersistenceRegistry(), null); // Assert var paramName = Assert.Throws(test).ParamName; Assert.AreEqual("context", paramName); } [Test] public void Update_WithoutPersistenceRegistry_ThrowsArgumentNullException() { // Setup var section = new AssessmentSection(AssessmentSectionComposition.Dike); // Call TestDelegate test = () => { using (var ringtoetsEntities = new RingtoetsEntities()) { section.Update(null, ringtoetsEntities); } }; // Assert var paramName = Assert.Throws(test).ParamName; Assert.AreEqual("registry", paramName); } [Test] public void Update_ContextWithNoAssessmentSection_EntityNotFoundException() { // Setup var section = new AssessmentSection(AssessmentSectionComposition.Dike); // Call TestDelegate test = () => { using (var ringtoetsEntities = new RingtoetsEntities()) { section.Update(new PersistenceRegistry(), ringtoetsEntities); } }; // Assert var expectedMessage = String.Format("Het object 'AssessmentSectionEntity' met id '{0}' is niet gevonden.", 0); EntityNotFoundException exception = Assert.Throws(test); Assert.AreEqual(expectedMessage, exception.Message); } [Test] public void Update_ContextWithNoAssessmentSectionWithId_EntityNotFoundException() { // Setup MockRepository mocks = new MockRepository(); var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks); mocks.ReplayAll(); var storageId = 1; var section = new AssessmentSection(AssessmentSectionComposition.Dike) { StorageId = storageId }; ringtoetsEntities.AssessmentSectionEntities.Add(new AssessmentSectionEntity { AssessmentSectionEntityId = 2 }); // Call TestDelegate test = () => section.Update(new PersistenceRegistry(), ringtoetsEntities); // Assert var expectedMessage = String.Format("Het object 'AssessmentSectionEntity' met id '{0}' is niet gevonden.", storageId); EntityNotFoundException exception = Assert.Throws(test); Assert.AreEqual(expectedMessage, exception.Message); mocks.VerifyAll(); } [Test] public void Update_ContextWithAssessmentSection_PropertiesUpdated() { // Setup MockRepository mocks = new MockRepository(); var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks); mocks.ReplayAll(); const string newId = "newId"; const string newName = "newName"; const string comments = "Some text"; const int norm = int.MaxValue; var composition = AssessmentSectionComposition.Dune; var section = InitializeCreatedDikeAssessmentSection(AssessmentSectionComposition.Dune); section.Id = newId; section.Name = newName; section.Comments = comments; section.FailureMechanismContribution.Norm = norm; var entity = new AssessmentSectionEntity { AssessmentSectionEntityId = 1, Id = string.Empty, Name = string.Empty, Composition = (short) AssessmentSectionComposition.Dike }; ringtoetsEntities.AssessmentSectionEntities.Add(entity); ringtoetsEntities.CalculationGroupEntities.Add(new CalculationGroupEntity { CalculationGroupEntityId = section.PipingFailureMechanism.CalculationsGroup.StorageId }); ringtoetsEntities.PipingFailureMechanismMetaEntities.Add(new PipingFailureMechanismMetaEntity { PipingFailureMechanismMetaEntityId = section.PipingFailureMechanism.PipingProbabilityAssessmentInput.StorageId, FailureMechanismEntityId = section.PipingFailureMechanism.StorageId }); ringtoetsEntities.GrassCoverErosionInwardsFailureMechanismMetaEntities.Add(new GrassCoverErosionInwardsFailureMechanismMetaEntity { GrassCoverErosionInwardsFailureMechanismMetaEntityId = section.GrassCoverErosionInwards.GeneralInput.StorageId, FailureMechanismEntityId = section.GrassCoverErosionInwards.StorageId }); FillWithFailureMechanismEntities(ringtoetsEntities.FailureMechanismEntities); // Call section.Update(new PersistenceRegistry(), ringtoetsEntities); // Assert Assert.AreEqual(newId, entity.Id); Assert.AreEqual(newName, entity.Name); Assert.AreEqual(comments, entity.Comments); Assert.AreEqual(norm, entity.Norm); Assert.AreEqual((short) composition, entity.Composition); Assert.IsEmpty(entity.ReferenceLinePointEntities); Assert.IsEmpty(entity.HydraulicLocationEntities); Assert.IsNull(entity.HydraulicDatabaseLocation); Assert.IsNull(entity.HydraulicDatabaseVersion); mocks.VerifyAll(); } [Test] public void Update_AssessmentSectionWithNewReferenceLine_ReferenceLineAdded() { // Setup MockRepository mocks = new MockRepository(); var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks); mocks.ReplayAll(); ReferenceLine referenceLine = new ReferenceLine(); referenceLine.SetGeometry(new[] { new Point2D(1, 2) }); var section = InitializeCreatedDikeAssessmentSection(); section.ReferenceLine = referenceLine; var entity = new AssessmentSectionEntity { AssessmentSectionEntityId = 1 }; ringtoetsEntities.AssessmentSectionEntities.Add(entity); ringtoetsEntities.CalculationGroupEntities.Add(new CalculationGroupEntity { CalculationGroupEntityId = section.PipingFailureMechanism.CalculationsGroup.StorageId }); ringtoetsEntities.PipingFailureMechanismMetaEntities.Add(new PipingFailureMechanismMetaEntity { PipingFailureMechanismMetaEntityId = section.PipingFailureMechanism.PipingProbabilityAssessmentInput.StorageId, FailureMechanismEntityId = section.PipingFailureMechanism.StorageId }); ringtoetsEntities.GrassCoverErosionInwardsFailureMechanismMetaEntities.Add(new GrassCoverErosionInwardsFailureMechanismMetaEntity { GrassCoverErosionInwardsFailureMechanismMetaEntityId = section.GrassCoverErosionInwards.GeneralInput.StorageId, FailureMechanismEntityId = section.GrassCoverErosionInwards.StorageId }); FillWithFailureMechanismEntities(ringtoetsEntities.FailureMechanismEntities); // Call section.Update(new PersistenceRegistry(), ringtoetsEntities); // Assert Assert.AreEqual(1, entity.ReferenceLinePointEntities.Count); mocks.VerifyAll(); } [Test] public void Update_AssessmentSectionWithExistingReferenceLine_PointsRemovedFromContextAndNewPointAddedToEntity() { // Setup MockRepository mocks = new MockRepository(); var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks); mocks.ReplayAll(); ReferenceLine referenceLine = new ReferenceLine(); referenceLine.SetGeometry(new[] { new Point2D(1, 2) }); var section = InitializeCreatedDikeAssessmentSection(); section.ReferenceLine = referenceLine; var referenceLinePointEntity = new ReferenceLinePointEntity { X = 2, Y = 3 }; var entity = new AssessmentSectionEntity { AssessmentSectionEntityId = 1, ReferenceLinePointEntities = { referenceLinePointEntity } }; ringtoetsEntities.AssessmentSectionEntities.Add(entity); ringtoetsEntities.CalculationGroupEntities.Add(new CalculationGroupEntity { CalculationGroupEntityId = section.PipingFailureMechanism.CalculationsGroup.StorageId }); ringtoetsEntities.PipingFailureMechanismMetaEntities.Add(new PipingFailureMechanismMetaEntity { PipingFailureMechanismMetaEntityId = section.PipingFailureMechanism.PipingProbabilityAssessmentInput.StorageId, FailureMechanismEntityId = section.PipingFailureMechanism.StorageId }); ringtoetsEntities.GrassCoverErosionInwardsFailureMechanismMetaEntities.Add(new GrassCoverErosionInwardsFailureMechanismMetaEntity { GrassCoverErosionInwardsFailureMechanismMetaEntityId = section.GrassCoverErosionInwards.GeneralInput.StorageId, FailureMechanismEntityId = section.GrassCoverErosionInwards.StorageId }); ringtoetsEntities.ReferenceLinePointEntities.Add(referenceLinePointEntity); FillWithFailureMechanismEntities(ringtoetsEntities.FailureMechanismEntities); // Call section.Update(new PersistenceRegistry(), ringtoetsEntities); // Assert Assert.AreEqual(0, ringtoetsEntities.ReferenceLinePointEntities.Count()); Assert.AreEqual(1, entity.ReferenceLinePointEntities.Count(p => p.X == 1 && p.Y == 2)); mocks.VerifyAll(); } [Test] public void Update_AssessmentSectionWithNewHydraulicDatabase_PropertiesUpdatedAndLocationsAdded() { // Setup MockRepository mocks = new MockRepository(); var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks); mocks.ReplayAll(); var newVersion = "new version"; var filePath = "new path"; var section = InitializeCreatedDikeAssessmentSection(); section.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase { FilePath = filePath, Version = newVersion, Locations = { new HydraulicBoundaryLocation(-1, string.Empty, 0, 0) } }; var entity = new AssessmentSectionEntity { AssessmentSectionEntityId = 1 }; ringtoetsEntities.AssessmentSectionEntities.Add(entity); ringtoetsEntities.CalculationGroupEntities.Add(new CalculationGroupEntity { CalculationGroupEntityId = section.PipingFailureMechanism.CalculationsGroup.StorageId }); ringtoetsEntities.PipingFailureMechanismMetaEntities.Add(new PipingFailureMechanismMetaEntity { PipingFailureMechanismMetaEntityId = section.PipingFailureMechanism.PipingProbabilityAssessmentInput.StorageId, FailureMechanismEntityId = section.PipingFailureMechanism.StorageId }); ringtoetsEntities.GrassCoverErosionInwardsFailureMechanismMetaEntities.Add(new GrassCoverErosionInwardsFailureMechanismMetaEntity { GrassCoverErosionInwardsFailureMechanismMetaEntityId = section.GrassCoverErosionInwards.GeneralInput.StorageId, FailureMechanismEntityId = section.GrassCoverErosionInwards.StorageId }); FillWithFailureMechanismEntities(ringtoetsEntities.FailureMechanismEntities); // Call section.Update(new PersistenceRegistry(), ringtoetsEntities); // Assert Assert.AreEqual(filePath, entity.HydraulicDatabaseLocation); Assert.AreEqual(newVersion, entity.HydraulicDatabaseVersion); Assert.AreEqual(1, entity.HydraulicLocationEntities.Count); mocks.VerifyAll(); } [Test] public void Update_AssessmentSectionWithUpdatedHydraulicDatabase_PropertiesUpdatedAndLocationUpdated() { // Setup MockRepository mocks = new MockRepository(); var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks); mocks.ReplayAll(); var newVersion = "new version"; var filePath = "new path"; var hydraulicBoundaryLocation = new HydraulicBoundaryLocation(-1, string.Empty, 0, 0) { StorageId = 1 }; var section = InitializeCreatedDikeAssessmentSection(); section.HydraulicBoundaryDatabase = new HydraulicBoundaryDatabase { FilePath = filePath, Version = newVersion, Locations = { hydraulicBoundaryLocation } }; var hydraulicLocationEntity = new HydraulicLocationEntity { HydraulicLocationEntityId = 1 }; var entity = new AssessmentSectionEntity { AssessmentSectionEntityId = 1, HydraulicDatabaseLocation = "old location", HydraulicDatabaseVersion = "old version", HydraulicLocationEntities = { hydraulicLocationEntity } }; ringtoetsEntities.AssessmentSectionEntities.Add(entity); ringtoetsEntities.CalculationGroupEntities.Add(new CalculationGroupEntity { CalculationGroupEntityId = section.PipingFailureMechanism.CalculationsGroup.StorageId }); ringtoetsEntities.PipingFailureMechanismMetaEntities.Add(new PipingFailureMechanismMetaEntity { PipingFailureMechanismMetaEntityId = section.PipingFailureMechanism.PipingProbabilityAssessmentInput.StorageId, FailureMechanismEntityId = section.PipingFailureMechanism.StorageId }); ringtoetsEntities.GrassCoverErosionInwardsFailureMechanismMetaEntities.Add(new GrassCoverErosionInwardsFailureMechanismMetaEntity { GrassCoverErosionInwardsFailureMechanismMetaEntityId = section.GrassCoverErosionInwards.GeneralInput.StorageId, FailureMechanismEntityId = section.GrassCoverErosionInwards.StorageId }); FillWithFailureMechanismEntities(ringtoetsEntities.FailureMechanismEntities); ringtoetsEntities.HydraulicLocationEntities.Add(hydraulicLocationEntity); // Call section.Update(new PersistenceRegistry(), ringtoetsEntities); // Assert Assert.AreEqual(filePath, entity.HydraulicDatabaseLocation); Assert.AreEqual(newVersion, entity.HydraulicDatabaseVersion); CollectionAssert.AreEqual(new[] { hydraulicLocationEntity }, entity.HydraulicLocationEntities); mocks.VerifyAll(); } [Test] public void Update_AssessmentSectionWithUpdatedPipingFailureMechanism_PropertiesUpdated() { // Setup MockRepository mocks = new MockRepository(); var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks); mocks.ReplayAll(); var section = InitializeCreatedDikeAssessmentSection(); section.PipingFailureMechanism.StorageId = 1; section.PipingFailureMechanism.Contribution = 0.5; section.PipingFailureMechanism.IsRelevant = true; var failureMechanismEntity = new FailureMechanismEntity { FailureMechanismEntityId = 1, IsRelevant = Convert.ToByte(false) }; var entity = new AssessmentSectionEntity { AssessmentSectionEntityId = 1, FailureMechanismEntities = { failureMechanismEntity } }; ringtoetsEntities.AssessmentSectionEntities.Add(entity); ringtoetsEntities.CalculationGroupEntities.Add(new CalculationGroupEntity { CalculationGroupEntityId = section.PipingFailureMechanism.CalculationsGroup.StorageId }); ringtoetsEntities.PipingFailureMechanismMetaEntities.Add(new PipingFailureMechanismMetaEntity { PipingFailureMechanismMetaEntityId = section.PipingFailureMechanism.PipingProbabilityAssessmentInput.StorageId, FailureMechanismEntityId = section.PipingFailureMechanism.StorageId }); ringtoetsEntities.GrassCoverErosionInwardsFailureMechanismMetaEntities.Add(new GrassCoverErosionInwardsFailureMechanismMetaEntity { GrassCoverErosionInwardsFailureMechanismMetaEntityId = section.GrassCoverErosionInwards.GeneralInput.StorageId, FailureMechanismEntityId = section.GrassCoverErosionInwards.StorageId }); ringtoetsEntities.FailureMechanismEntities.Add(failureMechanismEntity); FillWithFailureMechanismEntities(ringtoetsEntities.FailureMechanismEntities); // Call section.Update(new PersistenceRegistry(), ringtoetsEntities); // Assert CollectionAssert.AreEqual(new[] { failureMechanismEntity }, entity.FailureMechanismEntities); mocks.VerifyAll(); } [Test] public void Update_AssessmentSectionWithUpdatedGrassCoverErosionInwardsFailureMechanism_PropertiesUpdated() { // Setup MockRepository mocks = new MockRepository(); var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks); mocks.ReplayAll(); var section = InitializeCreatedDikeAssessmentSection(); section.GrassCoverErosionInwards.Contribution = 0.5; section.GrassCoverErosionInwards.IsRelevant = true; var failureMechanismEntity = new FailureMechanismEntity { FailureMechanismEntityId = 1, IsRelevant = Convert.ToByte(false) }; var entity = new AssessmentSectionEntity { AssessmentSectionEntityId = 1, FailureMechanismEntities = { failureMechanismEntity } }; ringtoetsEntities.AssessmentSectionEntities.Add(entity); ringtoetsEntities.CalculationGroupEntities.Add(new CalculationGroupEntity { CalculationGroupEntityId = section.PipingFailureMechanism.CalculationsGroup.StorageId }); ringtoetsEntities.PipingFailureMechanismMetaEntities.Add(new PipingFailureMechanismMetaEntity { PipingFailureMechanismMetaEntityId = section.PipingFailureMechanism.PipingProbabilityAssessmentInput.StorageId, FailureMechanismEntityId = section.PipingFailureMechanism.StorageId }); ringtoetsEntities.GrassCoverErosionInwardsFailureMechanismMetaEntities.Add(new GrassCoverErosionInwardsFailureMechanismMetaEntity { GrassCoverErosionInwardsFailureMechanismMetaEntityId = section.GrassCoverErosionInwards.GeneralInput.StorageId, FailureMechanismEntityId = section.GrassCoverErosionInwards.StorageId }); ringtoetsEntities.FailureMechanismEntities.Add(failureMechanismEntity); FillWithFailureMechanismEntities(ringtoetsEntities.FailureMechanismEntities); // Call section.Update(new PersistenceRegistry(), ringtoetsEntities); // Assert CollectionAssert.AreEqual(new[] { failureMechanismEntity }, entity.FailureMechanismEntities); mocks.VerifyAll(); } [Test] public void Update_AssessmentSectionWithUpdatedStandAloneFailureMechanisms_PropertiesUpdated() { // Setup MockRepository mocks = new MockRepository(); var ringtoetsEntities = RingtoetsEntitiesHelper.CreateStub(mocks); mocks.ReplayAll(); var section = InitializeCreatedDikeAssessmentSection(); section.StorageId = 1; 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, macrostabilityOutwardsEntity, microstabilityEntity, stabilityStoneCoverEntity, waveImpactAsphaltCoverEntity, waterPressureAsphaltCoverEntity, grassCoverErosionOutwardsEntity, grassCoverSlipOffOutwardsEntity, grassCoverSlipOffInwardsEntity, heightStructuresEntity, closingStructuresEntity, strengthStabilityPointConstructionEntity, strengthStabilityLengthwiseConstructionEntity, duneErosionEntity, technicalInnovationEntity } }; // Precondition: foreach (FailureMechanismEntity failureMechanismEntity in entity.FailureMechanismEntities) { Assert.IsFalse(Convert.ToBoolean(failureMechanismEntity.IsRelevant)); } ringtoetsEntities.AssessmentSectionEntities.Add(entity); ringtoetsEntities.CalculationGroupEntities.Add(new CalculationGroupEntity { CalculationGroupEntityId = section.PipingFailureMechanism.CalculationsGroup.StorageId }); ringtoetsEntities.PipingFailureMechanismMetaEntities.Add(new PipingFailureMechanismMetaEntity { PipingFailureMechanismMetaEntityId = section.PipingFailureMechanism.PipingProbabilityAssessmentInput.StorageId, FailureMechanismEntityId = section.PipingFailureMechanism.StorageId }); ringtoetsEntities.GrassCoverErosionInwardsFailureMechanismMetaEntities.Add(new GrassCoverErosionInwardsFailureMechanismMetaEntity { GrassCoverErosionInwardsFailureMechanismMetaEntityId = section.GrassCoverErosionInwards.GeneralInput.StorageId, FailureMechanismEntityId = section.GrassCoverErosionInwards.StorageId }); ringtoetsEntities.FailureMechanismEntities.Add(macrostabilityInwardsEntity); 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 section.Update(new PersistenceRegistry(), ringtoetsEntities); // Assert CollectionAssert.AreEqual(new[] { macrostabilityInwardsEntity, macrostabilityOutwardsEntity, microstabilityEntity, stabilityStoneCoverEntity, waveImpactAsphaltCoverEntity, waterPressureAsphaltCoverEntity, grassCoverErosionOutwardsEntity, grassCoverSlipOffOutwardsEntity, grassCoverSlipOffInwardsEntity, heightStructuresEntity, closingStructuresEntity, strengthStabilityPointConstructionEntity, strengthStabilityLengthwiseConstructionEntity, duneErosionEntity, technicalInnovationEntity }, entity.FailureMechanismEntities); foreach (FailureMechanismEntity failureMechanismEntity in entity.FailureMechanismEntities) { Assert.IsTrue(Convert.ToBoolean(failureMechanismEntity.IsRelevant)); } 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 = failureMechanismId++, CalculationsGroup = { StorageId = 1 }, PipingProbabilityAssessmentInput = { StorageId = 1 } }, GrassCoverErosionInwards = { StorageId = failureMechanismId++, GeneralInput = { StorageId = 12 } }, MacrostabilityInwards = { StorageId = failureMechanismId++ }, MacrostabilityOutwards = { StorageId = failureMechanismId++ }, Microstability = { StorageId = failureMechanismId++ }, HeightStructures = { StorageId = failureMechanismId++ }, ClosingStructure = { StorageId = failureMechanismId++ }, StrengthStabilityPointConstruction = { StorageId = failureMechanismId++ }, StrengthStabilityLengthwiseConstruction = { StorageId = failureMechanismId++ }, StabilityStoneCover = { StorageId = failureMechanismId++ }, WaveImpactAsphaltCover = { StorageId = failureMechanismId++ }, WaterPressureAsphaltCover = { StorageId = failureMechanismId++ }, GrassCoverErosionOutwards = { StorageId = failureMechanismId++ }, GrassCoverSlipOffOutwards = { StorageId = failureMechanismId++ }, GrassCoverSlipOffInwards = { StorageId = failureMechanismId++ }, PipingStructure = { StorageId = failureMechanismId++ }, DuneErosion = { StorageId = failureMechanismId++ }, TechnicalInnovation = { StorageId = failureMechanismId++ } }; } private void FillWithFailureMechanismEntities(DbSet failureMechanismEntities) { var failureMechanismEntity = failureMechanismEntities.LastOrDefault(); long startId = 0; if (failureMechanismEntity != null) { startId = failureMechanismEntity.FailureMechanismEntityId; } var count = failureMechanismEntities.Count(); for (var i = 1; i <= totalAmountOfFailureMechanismsInAssessmentSection - count; i++) { failureMechanismEntities.Add(new FailureMechanismEntity { FailureMechanismEntityId = startId + i }); } } } }