Add Clone tests, add remark to Clone

This commit is contained in:
Matt Nadareski
2025-01-08 13:54:51 -05:00
parent e6b2aabc2d
commit 1c16529e8e
2 changed files with 24 additions and 2 deletions

View File

@@ -898,13 +898,31 @@ namespace SabreTools.DatItems.Test
#region Clone #region Clone
// TODO: Implement Clone tests [Fact]
public void CloneTest()
{
DatItem item = new Sample();
item.SetName("name");
object clone = item.Clone();
Sample? actual = clone as Sample;
Assert.NotNull(actual);
Assert.Equal("name", actual.GetName());
}
#endregion #endregion
#region GetInternalClone #region GetInternalClone
// TODO: Implement GetInternalClone tests [Fact]
public void GetInternalCloneTest()
{
DatItem<TestDatItemModel> item = new TestDatItem();
item.SetName("name");
TestDatItemModel actual = item.GetInternalClone();
Assert.Equal("name", actual[TestDatItemModel.NameKey]);
}
#endregion #endregion
} }

View File

@@ -539,6 +539,10 @@ namespace SabreTools.DatItems
/// Clone the DatItem /// Clone the DatItem
/// </summary> /// </summary>
/// <returns>Clone of the DatItem</returns> /// <returns>Clone of the DatItem</returns>
/// <remarks>
/// Throws an exception if there is a DatItem implementation
/// that is not a part of this library.
/// </remarks>
public override object Clone() public override object Clone()
{ {
var concrete = Array.Find(Assembly.GetExecutingAssembly().GetTypes(), var concrete = Array.Find(Assembly.GetExecutingAssembly().GetTypes(),