Index: src/Deltares.DSoilModel.Data.Tests/SosSoilLayer1DTest.cs =================================================================== diff -u -r296 -r299 --- src/Deltares.DSoilModel.Data.Tests/SosSoilLayer1DTest.cs (.../SosSoilLayer1DTest.cs) (revision 296) +++ src/Deltares.DSoilModel.Data.Tests/SosSoilLayer1DTest.cs (.../SosSoilLayer1DTest.cs) (revision 299) @@ -7,6 +7,7 @@ using Deltares.Geotechnics; using Deltares.Geotechnics.IO; using Deltares.Standard.EventPublisher; +using Deltares.Standard.Reflection; using Deltares.Standard.TestUtils; using KellermanSoftware.CompareNetObjects; using NUnit.Framework; @@ -230,5 +231,66 @@ Assert.AreEqual(0, result.Differences.Count, "SOSProfileLayer1D fails comparison: " + result.DifferencesString); Console.WriteLine("OK !"); } + + [Test] + public void CloneTest() + { + var sosLayer1D = new SosSoilLayer1D() + { + Name = "TestSos1", + TopLevel = 11, + MaximumTopLevel = 12, + MinimumTopLevel = 13, + RemarkTopLevel = "remark testSos1", + Soil = new Soil("TestSoil1", Color.Beige) + }; + + var sosLayer1DClone = sosLayer1D.Clone(); + + var comparer = new CompareLogic(); + comparer.Config.ShowBreadcrumb = false; + comparer.Config.CompareStaticFields = false; + comparer.Config.CompareStaticProperties = false; + comparer.Config.AttributesToIgnore = new List { typeof(XmlIgnoreAttribute) }; + + // AS-IS: by some unclear reason these properties are set to NULL + comparer.Config.MembersToIgnore = new List + { + StaticReflection.GetMemberName(l => l.RemarkTopLevel), + StaticReflection.GetMemberName(l => l.MinimumTopLevel), + StaticReflection.GetMemberName(l => l.MaximumTopLevel) + }; + + var compareResult = comparer.Compare(sosLayer1D, sosLayer1DClone); + Assert.IsTrue(compareResult.AreEqual, compareResult.DifferencesString); + } + + [Test] + public void AssignTest() + { + var sosLayer1 = new SosSoilLayer1D() + { + Name = "TestSos1", + TopLevel = 11, + MaximumTopLevel = 12, + MinimumTopLevel = 13, + RemarkTopLevel = "remark testSos1" + }; + + var sosLayer2 = new SosSoilLayer1D() + { + Name = "TestSos2", + TopLevel = 21, + MaximumTopLevel = 22, + MinimumTopLevel = 23, + RemarkTopLevel = "remark testSos2" + }; + + sosLayer2.Assign(sosLayer1); + // AS-IS: by some unclear and undocumented reason these properties should be NULL + Assert.IsNull(sosLayer2.RemarkTopLevel); + Assert.IsNull(sosLayer2.MinimumTopLevel); + Assert.IsNull(sosLayer2.MaximumTopLevel); + } } } \ No newline at end of file