Index: Riskeer/HeightStructures/src/Riskeer.HeightStructures.Plugin/FileImporters/HeightStructuresFailureMechanismSectionResultUpdateStrategy.cs =================================================================== diff -u -r48c011c497f9aa495c6b1c747254cb690eae5cf8 -rf968b408989ac750bb93b47d8f91cc7d159f6d25 --- Riskeer/HeightStructures/src/Riskeer.HeightStructures.Plugin/FileImporters/HeightStructuresFailureMechanismSectionResultUpdateStrategy.cs (.../HeightStructuresFailureMechanismSectionResultUpdateStrategy.cs) (revision 48c011c497f9aa495c6b1c747254cb690eae5cf8) +++ Riskeer/HeightStructures/src/Riskeer.HeightStructures.Plugin/FileImporters/HeightStructuresFailureMechanismSectionResultUpdateStrategy.cs (.../HeightStructuresFailureMechanismSectionResultUpdateStrategy.cs) (revision f968b408989ac750bb93b47d8f91cc7d159f6d25) @@ -29,7 +29,7 @@ /// /// An update strategy that can be used to update either a /// or an instance with data from an old instance; - /// /// + /// public class HeightStructuresFailureMechanismSectionResultUpdateStrategy : IFailureMechanismSectionResultUpdateStrategy { Index: Riskeer/Integration/src/Riskeer.Integration.Plugin/FileImporters/PipingStructureFailureMechanismSectionResultUpdateStrategy.cs =================================================================== diff -u -r5f375656595d8fee8727648409e202f67f441daa -rf968b408989ac750bb93b47d8f91cc7d159f6d25 --- Riskeer/Integration/src/Riskeer.Integration.Plugin/FileImporters/PipingStructureFailureMechanismSectionResultUpdateStrategy.cs (.../PipingStructureFailureMechanismSectionResultUpdateStrategy.cs) (revision 5f375656595d8fee8727648409e202f67f441daa) +++ Riskeer/Integration/src/Riskeer.Integration.Plugin/FileImporters/PipingStructureFailureMechanismSectionResultUpdateStrategy.cs (.../PipingStructureFailureMechanismSectionResultUpdateStrategy.cs) (revision f968b408989ac750bb93b47d8f91cc7d159f6d25) @@ -20,17 +20,18 @@ // All rights reserved. using System; +using Riskeer.Common.Data.FailureMechanism; using Riskeer.Common.IO.FileImporters; using Riskeer.Integration.Data.StandAlone.SectionResults; namespace Riskeer.Integration.Plugin.FileImporters { /// - /// An update strategy that can be used to update a instance with data - /// from an old instance. + /// An update strategy that can be used to update either a + /// or an instance with data from an old instance; /// public class PipingStructureFailureMechanismSectionResultUpdateStrategy - : IFailureMechanismSectionResultUpdateStrategy + : IFailureMechanismSectionResultUpdateStrategy { public void UpdateSectionResultOld(PipingStructureFailureMechanismSectionResultOld origin, PipingStructureFailureMechanismSectionResultOld target) { @@ -50,5 +51,24 @@ target.UseManualAssembly = origin.UseManualAssembly; target.ManualAssemblyCategoryGroup = origin.ManualAssemblyCategoryGroup; } + + public void UpdateSectionResult(AdoptableFailureMechanismSectionResult origin, AdoptableFailureMechanismSectionResult target) + { + if (origin == null) + { + throw new ArgumentNullException(nameof(origin)); + } + + if (target == null) + { + throw new ArgumentNullException(nameof(target)); + } + + target.IsRelevant = origin.IsRelevant; + target.InitialFailureMechanismResult = origin.InitialFailureMechanismResult; + target.ManualInitialFailureMechanismResultSectionProbability = origin.ManualInitialFailureMechanismResultSectionProbability; + target.FurtherAnalysisNeeded = origin.FurtherAnalysisNeeded; + target.RefinedSectionProbability = origin.RefinedSectionProbability; + } } } \ No newline at end of file Index: Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/FileImporters/PipingStructureFailureMechanismSectionResultUpdateStrategyTest.cs =================================================================== diff -u -r570ba782656147a3d242852a1c273132175f1bc3 -rf968b408989ac750bb93b47d8f91cc7d159f6d25 --- Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/FileImporters/PipingStructureFailureMechanismSectionResultUpdateStrategyTest.cs (.../PipingStructureFailureMechanismSectionResultUpdateStrategyTest.cs) (revision 570ba782656147a3d242852a1c273132175f1bc3) +++ Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/FileImporters/PipingStructureFailureMechanismSectionResultUpdateStrategyTest.cs (.../PipingStructureFailureMechanismSectionResultUpdateStrategyTest.cs) (revision f968b408989ac750bb93b47d8f91cc7d159f6d25) @@ -19,7 +19,9 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using NUnit.Framework; +using Riskeer.Common.Data.FailureMechanism; using Riskeer.Common.Data.TestUtil; using Riskeer.Common.Plugin.TestUtil.FileImporters; using Riskeer.Common.Primitives; @@ -30,7 +32,7 @@ { [TestFixture] public class PipingStructureFailureMechanismSectionResultUpdateStrategyTest : FailureMechanismSectionResultUpdateStrategyTestFixture< - PipingStructureFailureMechanismSectionResultUpdateStrategy, PipingStructureFailureMechanismSectionResultOld> + PipingStructureFailureMechanismSectionResultUpdateStrategy, PipingStructureFailureMechanismSectionResultOld, AdoptableFailureMechanismSectionResult> { protected override PipingStructureFailureMechanismSectionResultOld CreateEmptySectionResultOld() { @@ -58,5 +60,32 @@ Assert.AreEqual(originResult.UseManualAssembly, targetResult.UseManualAssembly); Assert.AreEqual(originResult.ManualAssemblyCategoryGroup, targetResult.ManualAssemblyCategoryGroup); } + + protected override AdoptableFailureMechanismSectionResult CreateEmptySectionResult() + { + return new AdoptableFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()); + } + + protected override AdoptableFailureMechanismSectionResult CreateConfiguredSectionResult() + { + var random = new Random(39); + return new AdoptableFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) + { + IsRelevant = true, + InitialFailureMechanismResult = AdoptableInitialFailureMechanismResultType.Manual, + ManualInitialFailureMechanismResultSectionProbability = random.NextDouble(), + FurtherAnalysisNeeded = true, + RefinedSectionProbability = random.NextDouble() + }; + } + + protected override void AssertSectionResult(AdoptableFailureMechanismSectionResult originResult, AdoptableFailureMechanismSectionResult targetResult) + { + Assert.AreEqual(originResult.IsRelevant, targetResult.IsRelevant); + Assert.AreEqual(originResult.InitialFailureMechanismResult, targetResult.InitialFailureMechanismResult); + Assert.AreEqual(originResult.ManualInitialFailureMechanismResultSectionProbability, targetResult.ManualInitialFailureMechanismResultSectionProbability); + Assert.AreEqual(originResult.FurtherAnalysisNeeded, targetResult.FurtherAnalysisNeeded); + Assert.AreEqual(originResult.RefinedSectionProbability, targetResult.RefinedSectionProbability); + } } } \ No newline at end of file