Index: Riskeer/Piping/src/Riskeer.Piping.Data/Probabilistic/ProbabilisticPipingOutput.cs =================================================================== diff -u -rb73588e5f0c90398c590383b9e6996f996c19735 -rfc485da07b4e72ca041d014eef9a280446d2a751 --- Riskeer/Piping/src/Riskeer.Piping.Data/Probabilistic/ProbabilisticPipingOutput.cs (.../ProbabilisticPipingOutput.cs) (revision b73588e5f0c90398c590383b9e6996f996c19735) +++ Riskeer/Piping/src/Riskeer.Piping.Data/Probabilistic/ProbabilisticPipingOutput.cs (.../ProbabilisticPipingOutput.cs) (revision fc485da07b4e72ca041d014eef9a280446d2a751) @@ -45,11 +45,28 @@ /// /// Gets the result of the sub-calculation that takes into account the section length. /// - public PartialProbabilisticPipingOutput ResultWithLength { get; } + public PartialProbabilisticPipingOutput ResultWithLength { get; private set; } /// /// Gets the result of the sub-calculation that doesn't take into account the section length. /// - public PartialProbabilisticPipingOutput ResultWithoutLength { get; } + public PartialProbabilisticPipingOutput ResultWithoutLength { get; private set; } + + public override object Clone() + { + var clone = (ProbabilisticPipingOutput) base.Clone(); + + if (ResultWithLength != null) + { + clone.ResultWithLength = (PartialProbabilisticPipingOutput) ResultWithLength.Clone(); + } + + if (ResultWithoutLength != null) + { + clone.ResultWithoutLength = (PartialProbabilisticPipingOutput) ResultWithoutLength.Clone(); + } + + return clone; + } } } \ No newline at end of file Index: Riskeer/Piping/test/Riskeer.Piping.Data.Test/Probabilistic/ProbabilisticPipingOutputTest.cs =================================================================== diff -u -rb73588e5f0c90398c590383b9e6996f996c19735 -rfc485da07b4e72ca041d014eef9a280446d2a751 --- Riskeer/Piping/test/Riskeer.Piping.Data.Test/Probabilistic/ProbabilisticPipingOutputTest.cs (.../ProbabilisticPipingOutputTest.cs) (revision b73588e5f0c90398c590383b9e6996f996c19735) +++ Riskeer/Piping/test/Riskeer.Piping.Data.Test/Probabilistic/ProbabilisticPipingOutputTest.cs (.../ProbabilisticPipingOutputTest.cs) (revision fc485da07b4e72ca041d014eef9a280446d2a751) @@ -50,9 +50,48 @@ } [Test] - public void Clone_Always_ReturnNewInstanceWithCopiedValues() + public void Clone_NoPropertiesSet_ReturnNewInstanceWithCopiedValues() { // Setup + var original = new ProbabilisticPipingOutput(null, null); + + // Call + object clone = original.Clone(); + + // Assert + CoreCloneAssert.AreObjectClones(original, clone, PipingCloneAssert.AreClones); + } + + [Test] + public void Clone_OnlyOutputWithLengthSet_ReturnNewInstanceWithCopiedValues() + { + // Setup + var original = new ProbabilisticPipingOutput(PipingTestDataGenerator.GetRandomPartialProbabilisticPipingOutput(new TestGeneralResultFaultTreeIllustrationPoint()), null); + + // Call + object clone = original.Clone(); + + // Assert + CoreCloneAssert.AreObjectClones(original, clone, PipingCloneAssert.AreClones); + } + + [Test] + public void Clone_OnlyOutputWithoutLengthSet_ReturnNewInstanceWithCopiedValues() + { + // Setup + var original = new ProbabilisticPipingOutput(null, PipingTestDataGenerator.GetRandomPartialProbabilisticPipingOutput(new TestGeneralResultFaultTreeIllustrationPoint())); + + // Call + object clone = original.Clone(); + + // Assert + CoreCloneAssert.AreObjectClones(original, clone, PipingCloneAssert.AreClones); + } + + [Test] + public void Clone_AllPropertiesSet_ReturnNewInstanceWithCopiedValues() + { + // Setup ProbabilisticPipingOutput original = PipingTestDataGenerator.GetRandomProbabilisticPipingOutput(); // Call Index: Riskeer/Piping/test/Riskeer.Piping.Data.TestUtil/PipingCloneAssert.cs =================================================================== diff -u -rbf7a895f63e091ac3a9f225d082e9b5cd6556b6d -rfc485da07b4e72ca041d014eef9a280446d2a751 --- Riskeer/Piping/test/Riskeer.Piping.Data.TestUtil/PipingCloneAssert.cs (.../PipingCloneAssert.cs) (revision bf7a895f63e091ac3a9f225d082e9b5cd6556b6d) +++ Riskeer/Piping/test/Riskeer.Piping.Data.TestUtil/PipingCloneAssert.cs (.../PipingCloneAssert.cs) (revision fc485da07b4e72ca041d014eef9a280446d2a751) @@ -63,8 +63,8 @@ /// are not clones. public static void AreClones(ProbabilisticPipingOutput original, ProbabilisticPipingOutput clone) { - AreClones(original.ResultWithLength, clone.ResultWithLength); - AreClones(original.ResultWithoutLength, clone.ResultWithoutLength); + CoreCloneAssert.AreObjectClones(original.ResultWithLength, clone.ResultWithLength, AreClones); + CoreCloneAssert.AreObjectClones(original.ResultWithoutLength, clone.ResultWithoutLength, AreClones); } ///