Index: Ringtoets/Common/src/Ringtoets.Common.Data/IllustrationPoints/IllustrationPointResult.cs =================================================================== diff -u -rb7988d7a5616c8c305dac4419a15d5eda07e88bc -r5b042d0f6df2a45e22ca7857f438efce64767791 --- Ringtoets/Common/src/Ringtoets.Common.Data/IllustrationPoints/IllustrationPointResult.cs (.../IllustrationPointResult.cs) (revision b7988d7a5616c8c305dac4419a15d5eda07e88bc) +++ Ringtoets/Common/src/Ringtoets.Common.Data/IllustrationPoints/IllustrationPointResult.cs (.../IllustrationPointResult.cs) (revision 5b042d0f6df2a45e22ca7857f438efce64767791) @@ -27,7 +27,7 @@ /// /// An output variable for an illustration point. /// - public class IllustrationPointResult + public class IllustrationPointResult : ICloneable { /// /// Creates a new instance of . @@ -56,5 +56,10 @@ /// Gets the value of the illustration point result. /// public RoundedDouble Value { get; } + + public object Clone() + { + return MemberwiseClone(); + } } } \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/IllustrationPoints/IllustrationPointResultTest.cs =================================================================== diff -u -rb7988d7a5616c8c305dac4419a15d5eda07e88bc -r5b042d0f6df2a45e22ca7857f438efce64767791 --- Ringtoets/Common/test/Ringtoets.Common.Data.Test/IllustrationPoints/IllustrationPointResultTest.cs (.../IllustrationPointResultTest.cs) (revision b7988d7a5616c8c305dac4419a15d5eda07e88bc) +++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/IllustrationPoints/IllustrationPointResultTest.cs (.../IllustrationPointResultTest.cs) (revision 5b042d0f6df2a45e22ca7857f438efce64767791) @@ -23,6 +23,8 @@ using NUnit.Framework; using Ringtoets.Common.Data.IllustrationPoints; using Ringtoets.Common.Data.TestUtil; +using CoreCloneAssert = Core.Common.Data.TestUtil.CloneAssert; +using CommonCloneAssert = Ringtoets.Common.Data.TestUtil.CloneAssert; namespace Ringtoets.Common.Data.Test.IllustrationPoints { @@ -54,10 +56,25 @@ var illustrationPointResult = new IllustrationPointResult(description, value); // Assert + Assert.IsInstanceOf(illustrationPointResult); Assert.AreEqual(description, illustrationPointResult.Description); Assert.AreEqual(value, illustrationPointResult.Value, illustrationPointResult.Value.GetAccuracy()); Assert.AreEqual(5, illustrationPointResult.Value.NumberOfDecimalPlaces); } + + [Test] + public void Clone_Always_ReturnNewInstanceWithCopiedValues() + { + // Setup + var random = new Random(21); + var original = new IllustrationPointResult("Random description", random.NextDouble()); + + // Call + object clone = original.Clone(); + + // Assert + CoreCloneAssert.AreClones(original, clone, CommonCloneAssert.AreClones); + } } } \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil/CloneAssert.cs =================================================================== diff -u -rf935f1251aa545c93e116c9ec0c16a3587f882e2 -r5b042d0f6df2a45e22ca7857f438efce64767791 --- Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil/CloneAssert.cs (.../CloneAssert.cs) (revision f935f1251aa545c93e116c9ec0c16a3587f882e2) +++ Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil/CloneAssert.cs (.../CloneAssert.cs) (revision 5b042d0f6df2a45e22ca7857f438efce64767791) @@ -132,5 +132,19 @@ CoreCloneAssert.AreClones(original.WindDirection, clone.WindDirection, AreClones); Assert.AreEqual(original.ClosingSituation, clone.ClosingSituation); } + + /// + /// Method that asserts whether and + /// are clones. + /// + /// The original object. + /// The cloned object. + /// Thrown when and + /// are not clones. + public static void AreClones(IllustrationPointResult original, IllustrationPointResult clone) + { + Assert.AreEqual(original.Description, clone.Description); + Assert.AreEqual(original.Value, clone.Value); + } } } \ No newline at end of file