public void Clone_ObjectsWith3Params_ReturnsFullObjectCopy() { SystemParams systemParams = GetDefaultWith3Params(); SystemParams cloned = systemParams.Clone(); Assert.AreEqual(cloned.Count, systemParams.Count); Assert.AreEqual(cloned.DisplayText[0], systemParams.DisplayText[0]); Assert.AreEqual(cloned.DisplayText[1], systemParams.DisplayText[1]); Assert.AreEqual(cloned.ImageIndex, systemParams.ImageIndex); Assert.AreEqual(cloned.IsFilled, systemParams.IsFilled); Assert.AreEqual(cloned.SaveAsLuaTable(string.Empty), systemParams.SaveAsLuaTable(string.Empty)); var systemParamArr = (SystemParam[])systemParams.Items; var clonedSystemParamArr = (SystemParam[])cloned.Items; for (int i = 0; i < systemParamArr.Length; i++) { Assert.AreEqual(systemParamArr[i].Name, clonedSystemParamArr[i].Name); Assert.AreEqual(systemParamArr[i].LuaName, clonedSystemParamArr[i].LuaName); Assert.AreEqual(systemParamArr[i].Meter, clonedSystemParamArr[i].Meter); } }