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