Skip to content

Commit fdf48d6

Browse files
committed
Adding failing test for copying unity objects
1 parent f63c320 commit fdf48d6

File tree

2 files changed

+21
-5
lines changed

2 files changed

+21
-5
lines changed

Runtime/SaveLoadManager.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ public void Save(object obj, string filename, string folder = null)
7575
}
7676

7777
/// <summary>
78-
/// Creat a copy of an object by serializing and deserializing it
78+
/// Creat a copy of an object by serializing and deserializing it.
79+
/// Not compatible with unity objects.
7980
/// </summary>
8081
/// <param name="obj">object to be copied</param>
8182
/// <returns>duplicated instance</returns>
@@ -86,7 +87,8 @@ public object Copy(object obj)
8687
}
8788

8889
/// <summary>
89-
/// Creat a copy of an object by serializing and deserializing it
90+
/// Creat a copy of an object by serializing and deserializing it.
91+
/// Not compatible with Unity objects.
9092
/// </summary>
9193
/// <param name="obj">object to be copied</param>
9294
/// <typeparam name="T">Type of object to be copied.</typeparam>

Tests/Runtime/SaveLoadManagerTests.cs

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -190,9 +190,7 @@ public void CanSaveLoadUnityObject([Values] SerializationMethodType method)
190190

191191
var filepath = $"{SaveLoadUtility.GetSavePath(SaveDirectory, BaseDirectory)}/{filename}";
192192
Assert.IsTrue(File.Exists(filepath));
193-
194-
//var loadedTestObj = manager.Load<SaveLoadTestUnityObject>(filename);
195-
//Assert.IsTrue(loadedTestObj != null);
193+
196194
manager.LoadUnityObjectOverwrite(loadedTestObj,filename);
197195
Assert.IsTrue(loadedTestObj.textValue == testObj.textValue);
198196

@@ -204,6 +202,22 @@ public void CanSaveLoadUnityObject([Values] SerializationMethodType method)
204202
Object.Destroy(manager);
205203
}
206204

205+
[Test]
206+
public void CanCopyUnityObject([Values] SerializationMethodType method)
207+
{
208+
var manager = CreateManager(method);
209+
var testObj = ScriptableObject.CreateInstance<SaveLoadTestUnityObject>();
210+
testObj.textValue = "MyValue";
211+
212+
var loadedTestObj = manager.Copy(testObj);
213+
214+
Assert.IsTrue(loadedTestObj.textValue == testObj.textValue);
215+
216+
Object.Destroy(testObj);
217+
Object.Destroy(loadedTestObj);
218+
Object.Destroy(manager);
219+
}
220+
207221
[Test]
208222
public void CanSaveAndLoadDictionary([Values(
209223
SerializationMethodType.Binary,

0 commit comments

Comments
 (0)