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
// 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
#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
}

View File

@@ -539,6 +539,10 @@ namespace SabreTools.DatItems
/// Clone the DatItem
/// </summary>
/// <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()
{
var concrete = Array.Find(Assembly.GetExecutingAssembly().GetTypes(),