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