Index: Riskeer/Piping/test/Riskeer.Piping.Data.Test/Probabilistic/ProbabilisticPipingCalculationTest.cs
===================================================================
diff -u -r20e7e6fa8aa7f33ace3cf0bee9dc3ce2fc4015c1 -r29eb40bfe04b200a49455f143e605f83dc0cd4d9
--- Riskeer/Piping/test/Riskeer.Piping.Data.Test/Probabilistic/ProbabilisticPipingCalculationTest.cs (.../ProbabilisticPipingCalculationTest.cs) (revision 20e7e6fa8aa7f33ace3cf0bee9dc3ce2fc4015c1)
+++ Riskeer/Piping/test/Riskeer.Piping.Data.Test/Probabilistic/ProbabilisticPipingCalculationTest.cs (.../ProbabilisticPipingCalculationTest.cs) (revision 29eb40bfe04b200a49455f143e605f83dc0cd4d9)
@@ -19,8 +19,10 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using Core.Common.Data.TestUtil;
using NUnit.Framework;
using Riskeer.Piping.Data.Probabilistic;
+using Riskeer.Piping.Data.TestUtil;
namespace Riskeer.Piping.Data.Test.Probabilistic
{
@@ -87,5 +89,49 @@
// Assert
Assert.IsNull(calculation.Output);
}
+
+ [Test]
+ public void Clone_AllPropertiesSet_ReturnNewInstanceWithCopiedValues()
+ {
+ // Setup
+ ProbabilisticPipingCalculation original = CreateRandomCalculationWithoutOutput();
+
+ original.Output = PipingOutputTestFactory.Create();
+
+ // Call
+ object clone = original.Clone();
+
+ // Assert
+ CoreCloneAssert.AreObjectClones(original, clone, PipingCloneAssert.AreClones);
+ }
+
+ [Test]
+ public void Clone_NotAllPropertiesSet_ReturnNewInstanceWithCopiedValues()
+ {
+ // Setup
+ ProbabilisticPipingCalculation original = CreateRandomCalculationWithoutOutput();
+
+ // Call
+ object clone = original.Clone();
+
+ // Assert
+ CoreCloneAssert.AreObjectClones(original, clone, PipingCloneAssert.AreClones);
+ }
+
+ private static ProbabilisticPipingCalculation CreateRandomCalculationWithoutOutput()
+ {
+ var calculation = new ProbabilisticPipingCalculation(new GeneralPipingInput())
+ {
+ Name = "Random name",
+ Comments =
+ {
+ Body = "Random body"
+ }
+ };
+
+ PipingTestDataGenerator.SetRandomDataToPipingInput(calculation.InputParameters);
+
+ return calculation;
+ }
}
}
\ No newline at end of file
Index: Riskeer/Piping/test/Riskeer.Piping.Data.TestUtil/PipingCloneAssert.cs
===================================================================
diff -u -r7d4cd8bd62fff02ccaa91f18ed6d53b46bc3b2ec -r29eb40bfe04b200a49455f143e605f83dc0cd4d9
--- Riskeer/Piping/test/Riskeer.Piping.Data.TestUtil/PipingCloneAssert.cs (.../PipingCloneAssert.cs) (revision 7d4cd8bd62fff02ccaa91f18ed6d53b46bc3b2ec)
+++ Riskeer/Piping/test/Riskeer.Piping.Data.TestUtil/PipingCloneAssert.cs (.../PipingCloneAssert.cs) (revision 29eb40bfe04b200a49455f143e605f83dc0cd4d9)
@@ -61,6 +61,16 @@
/// The cloned object.
/// Thrown when and
/// are not clones.
+ public static void AreClones(ProbabilisticPipingOutput original, ProbabilisticPipingOutput clone) {}
+
+ ///
+ /// Method that asserts whether and
+ /// are clones.
+ ///
+ /// The original object.
+ /// The cloned object.
+ /// Thrown when and
+ /// are not clones.
public static void AreClones(PipingInput original, PipingInput clone)
{
Assert.AreSame(TypeUtils.GetField(original, "generalInputParameters"), TypeUtils.GetField(clone, "generalInputParameters"));
@@ -140,6 +150,20 @@
/// The cloned object.
/// Thrown when and
/// are not clones.
+ public static void AreClones(ProbabilisticPipingCalculation original, ProbabilisticPipingCalculation clone)
+ {
+ AreClones((IPipingCalculation) original, clone);
+ CoreCloneAssert.AreObjectClones(original.Output, clone.Output, AreClones);
+ }
+
+ ///
+ /// Method that asserts whether and
+ /// are clones.
+ ///
+ /// The original object.
+ /// The cloned object.
+ /// Thrown when and
+ /// are not clones.
public static void AreClones(SemiProbabilisticPipingCalculationScenario original, SemiProbabilisticPipingCalculationScenario clone)
{
AreClones((SemiProbabilisticPipingCalculation) original, clone);