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);
}
///