Index: Ringtoets/Common/src/Ringtoets.Common.Data/Calculation/ICalculationInput.cs =================================================================== diff -u -rb3b6c13cf736c134476b3db34281332d01ca86b1 -r1c474d80a340cff18ba177241f856edf5f13e434 --- Ringtoets/Common/src/Ringtoets.Common.Data/Calculation/ICalculationInput.cs (.../ICalculationInput.cs) (revision b3b6c13cf736c134476b3db34281332d01ca86b1) +++ Ringtoets/Common/src/Ringtoets.Common.Data/Calculation/ICalculationInput.cs (.../ICalculationInput.cs) (revision 1c474d80a340cff18ba177241f856edf5f13e434) @@ -19,12 +19,13 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using Core.Common.Base; namespace Ringtoets.Common.Data.Calculation { /// /// Interface describing an object that is the input to a . /// - public interface ICalculationInput : IObservable {} + public interface ICalculationInput : IObservable, ICloneable {} } \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.Data/Hydraulics/HydraulicBoundaryLocationCalculationInput.cs =================================================================== diff -u -raea63ba505ca62fb7294ef1f88febbb9154ca258 -r1c474d80a340cff18ba177241f856edf5f13e434 --- Ringtoets/Common/src/Ringtoets.Common.Data/Hydraulics/HydraulicBoundaryLocationCalculationInput.cs (.../HydraulicBoundaryLocationCalculationInput.cs) (revision aea63ba505ca62fb7294ef1f88febbb9154ca258) +++ Ringtoets/Common/src/Ringtoets.Common.Data/Hydraulics/HydraulicBoundaryLocationCalculationInput.cs (.../HydraulicBoundaryLocationCalculationInput.cs) (revision 1c474d80a340cff18ba177241f856edf5f13e434) @@ -27,7 +27,7 @@ /// /// Class that holds all hydraulic boundary calculation specific input parameters. /// - public class HydraulicBoundaryLocationCalculationInput : Observable, ICalculationInput + public class HydraulicBoundaryLocationCalculationInput : CloneableObservable, ICalculationInput { /// /// Gets or sets if the illustration points should be calculated. Index: Ringtoets/Common/src/Ringtoets.Common.Data/Structures/IStructuresCalculationInput.cs =================================================================== diff -u -r6ebe864bf0138360fbba9a2772e9faf763287e8a -r1c474d80a340cff18ba177241f856edf5f13e434 --- Ringtoets/Common/src/Ringtoets.Common.Data/Structures/IStructuresCalculationInput.cs (.../IStructuresCalculationInput.cs) (revision 6ebe864bf0138360fbba9a2772e9faf763287e8a) +++ Ringtoets/Common/src/Ringtoets.Common.Data/Structures/IStructuresCalculationInput.cs (.../IStructuresCalculationInput.cs) (revision 1c474d80a340cff18ba177241f856edf5f13e434) @@ -19,15 +19,14 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. -using System; using Ringtoets.Common.Data.Calculation; namespace Ringtoets.Common.Data.Structures { /// /// Interface describing an object that is the input to a structures calculation. /// - public interface IStructuresCalculationInput : ICalculationInput, ICloneable {} + public interface IStructuresCalculationInput : ICalculationInput {} /// /// Interface describing an object that is the input to a structures calculation. Index: Ringtoets/Common/test/Ringtoets.Common.Data.Test/Hydraulics/HydraulicBoundaryLocationCalculationInputTest.cs =================================================================== diff -u -raea63ba505ca62fb7294ef1f88febbb9154ca258 -r1c474d80a340cff18ba177241f856edf5f13e434 --- Ringtoets/Common/test/Ringtoets.Common.Data.Test/Hydraulics/HydraulicBoundaryLocationCalculationInputTest.cs (.../HydraulicBoundaryLocationCalculationInputTest.cs) (revision aea63ba505ca62fb7294ef1f88febbb9154ca258) +++ Ringtoets/Common/test/Ringtoets.Common.Data.Test/Hydraulics/HydraulicBoundaryLocationCalculationInputTest.cs (.../HydraulicBoundaryLocationCalculationInputTest.cs) (revision 1c474d80a340cff18ba177241f856edf5f13e434) @@ -19,10 +19,14 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using Core.Common.Base; +using Core.Common.Data.TestUtil; +using Core.Common.TestUtil; using NUnit.Framework; using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.Hydraulics; +using Ringtoets.Common.Data.TestUtil; namespace Ringtoets.Common.Data.Test.Hydraulics { @@ -37,8 +41,24 @@ // Assert Assert.IsInstanceOf(input); - Assert.IsInstanceOf(input); + Assert.IsInstanceOf(input); Assert.IsFalse(input.ShouldIllustrationPointsBeCalculated); } + + [Test] + public void Clone_Always_ReturnNewInstanceWithCopiedValues() + { + // Setup + var original = new HydraulicBoundaryLocationCalculationInput + { + ShouldIllustrationPointsBeCalculated = new Random(39).NextBoolean() + }; + + // Call + object clone = original.Clone(); + + // Assert + CoreCloneAssert.AreObjectClones(original, clone, CommonCloneAssert.AreClones); + } } } \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil/CommonCloneAssert.cs =================================================================== diff -u -r43b4218e6e71896eb4f3985555258caeb4c7f6f7 -r1c474d80a340cff18ba177241f856edf5f13e434 --- Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil/CommonCloneAssert.cs (.../CommonCloneAssert.cs) (revision 43b4218e6e71896eb4f3985555258caeb4c7f6f7) +++ Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil/CommonCloneAssert.cs (.../CommonCloneAssert.cs) (revision 1c474d80a340cff18ba177241f856edf5f13e434) @@ -23,6 +23,7 @@ using NUnit.Framework; using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.DikeProfiles; +using Ringtoets.Common.Data.Hydraulics; using Ringtoets.Common.Data.IllustrationPoints; using Ringtoets.Common.Data.Probability; using Ringtoets.Common.Data.Structures; @@ -355,5 +356,18 @@ { Assert.AreEqual(original.Name, clone.Name); } + + /// + /// Method that asserts whether and + /// are clones. + /// + /// The original object. + /// The cloned object. + /// Thrown when and + /// are not clones. + public static void AreClones(HydraulicBoundaryLocationCalculationInput original, HydraulicBoundaryLocationCalculationInput clone) + { + Assert.AreEqual(original.ShouldIllustrationPointsBeCalculated, clone.ShouldIllustrationPointsBeCalculated); + } } } \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil/TestCalculationWithForeshoreProfile.cs =================================================================== diff -u -r566d36e29347b40381bff26e321334b5af07c367 -r1c474d80a340cff18ba177241f856edf5f13e434 --- Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil/TestCalculationWithForeshoreProfile.cs (.../TestCalculationWithForeshoreProfile.cs) (revision 566d36e29347b40381bff26e321334b5af07c367) +++ Ringtoets/Common/test/Ringtoets.Common.Data.TestUtil/TestCalculationWithForeshoreProfile.cs (.../TestCalculationWithForeshoreProfile.cs) (revision 1c474d80a340cff18ba177241f856edf5f13e434) @@ -149,6 +149,11 @@ { throw new NotImplementedException(); } + + public object Clone() + { + throw new NotImplementedException(); + } } } } \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PropertyClasses/UseBreakWaterPropertiesTest.cs =================================================================== diff -u -r6ef5e439a6d9f40ebd9926251945e0935fbbc314 -r1c474d80a340cff18ba177241f856edf5f13e434 --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PropertyClasses/UseBreakWaterPropertiesTest.cs (.../UseBreakWaterPropertiesTest.cs) (revision 6ef5e439a6d9f40ebd9926251945e0935fbbc314) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PropertyClasses/UseBreakWaterPropertiesTest.cs (.../UseBreakWaterPropertiesTest.cs) (revision 1c474d80a340cff18ba177241f856edf5f13e434) @@ -212,7 +212,7 @@ new TestUseBreakWater()); } - private class TestUseBreakWater : Observable, ICalculationInput, IUseBreakWater + private class TestUseBreakWater : CloneableObservable, ICalculationInput, IUseBreakWater { public TestUseBreakWater() { @@ -223,7 +223,7 @@ public BreakWater BreakWater { get; set; } } - private void SetPropertyAndVerifyNotificationsAndOutputForCalculation( + private static void SetPropertyAndVerifyNotificationsAndOutputForCalculation( Action setProperty, TestUseBreakWater input) { Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PropertyClasses/UseForeshorePropertiesTest.cs =================================================================== diff -u -r6ef5e439a6d9f40ebd9926251945e0935fbbc314 -r1c474d80a340cff18ba177241f856edf5f13e434 --- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PropertyClasses/UseForeshorePropertiesTest.cs (.../UseForeshorePropertiesTest.cs) (revision 6ef5e439a6d9f40ebd9926251945e0935fbbc314) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/PropertyClasses/UseForeshorePropertiesTest.cs (.../UseForeshorePropertiesTest.cs) (revision 1c474d80a340cff18ba177241f856edf5f13e434) @@ -184,7 +184,7 @@ true); } - private void SetPropertyAndVerifyNotificationsAndOutputForCalculation( + private static void SetPropertyAndVerifyNotificationsAndOutputForCalculation( Action setProperty, TestUseForeshore input) { @@ -209,7 +209,7 @@ mocks.VerifyAll(); } - private class TestUseForeshore : Observable, ICalculationInput, IUseForeshore + private class TestUseForeshore : CloneableObservable, ICalculationInput, IUseForeshore { public bool UseForeshore { get; set; } public RoundedPoint2DCollection ForeshoreGeometry { get; set; } Index: Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil.Test/TestCalculationInputTest.cs =================================================================== diff -u -rb3b6c13cf736c134476b3db34281332d01ca86b1 -r1c474d80a340cff18ba177241f856edf5f13e434 --- Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil.Test/TestCalculationInputTest.cs (.../TestCalculationInputTest.cs) (revision b3b6c13cf736c134476b3db34281332d01ca86b1) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil.Test/TestCalculationInputTest.cs (.../TestCalculationInputTest.cs) (revision 1c474d80a340cff18ba177241f856edf5f13e434) @@ -35,7 +35,7 @@ var input = new TestCalculationInput(); // Assert - Assert.IsInstanceOf(input); + Assert.IsInstanceOf(input); Assert.IsInstanceOf(input); } } Index: Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil/TestCalculationInput.cs =================================================================== diff -u -rb3b6c13cf736c134476b3db34281332d01ca86b1 -r1c474d80a340cff18ba177241f856edf5f13e434 --- Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil/TestCalculationInput.cs (.../TestCalculationInput.cs) (revision b3b6c13cf736c134476b3db34281332d01ca86b1) +++ Ringtoets/Common/test/Ringtoets.Common.Forms.TestUtil/TestCalculationInput.cs (.../TestCalculationInput.cs) (revision 1c474d80a340cff18ba177241f856edf5f13e434) @@ -27,5 +27,5 @@ /// /// Creates a simple implementation. /// - public class TestCalculationInput : Observable, ICalculationInput {} + public class TestCalculationInput : CloneableObservable, ICalculationInput {} } \ No newline at end of file Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/Configurations/Import/ConfigurationImportHelperTest.cs =================================================================== diff -u -rb3b6c13cf736c134476b3db34281332d01ca86b1 -r1c474d80a340cff18ba177241f856edf5f13e434 --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/Configurations/Import/ConfigurationImportHelperTest.cs (.../ConfigurationImportHelperTest.cs) (revision b3b6c13cf736c134476b3db34281332d01ca86b1) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/Configurations/Import/ConfigurationImportHelperTest.cs (.../ConfigurationImportHelperTest.cs) (revision 1c474d80a340cff18ba177241f856edf5f13e434) @@ -212,7 +212,7 @@ mocks.VerifyAll(); } - private class TestInputWithStochasts : Observable, ICalculationInput + private class TestInputWithStochasts : CloneableObservable, ICalculationInput { public TestInputWithStochasts() {