Skip to content

Commit 6f9e399

Browse files
author
MSI\Austin
committed
[ADDED] unit test for the function, the actual test is fairly limited because I was unsure of a good / meaningful negative test.
1 parent 283951d commit 6f9e399

File tree

2 files changed

+35
-1
lines changed

2 files changed

+35
-1
lines changed

Assets/FbxExporters/Editor/ConvertToModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ public static void UpdateFromSourceRecursive(GameObject dest, GameObject source)
294294
/// <returns>Dictionary containing the name to source game object.</returns>
295295
/// <param name="dest">Destination GameObject.</param>
296296
/// <param name="source">Source GameObject.</param>
297-
private static Dictionary<string,GameObject> MapNameToSourceRecursive(GameObject dest, GameObject source){
297+
public static Dictionary<string,GameObject> MapNameToSourceRecursive(GameObject dest, GameObject source){
298298
var nameToGO = new Dictionary<string,GameObject> ();
299299

300300
var q = new Queue<Transform> ();

Assets/FbxExporters/Editor/UnitTests/ConvertToModelTest.cs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,5 +182,39 @@ public void SkinnedMeshTest()
182182
// In the future we'll want to assert the opposite!
183183
Assert.That(cubeInstance.GetComponentsInChildren<SkinnedMeshRenderer>(), Is.Empty);
184184
}
185+
186+
[Test]
187+
public void MapNameToSourceTest()
188+
{
189+
//Create a cube with 3 children game objects
190+
var cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
191+
var capsule = GameObject.CreatePrimitive(PrimitiveType.Capsule);
192+
var sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
193+
var quad = GameObject.CreatePrimitive(PrimitiveType.Quad);
194+
195+
capsule.transform.parent = cube.transform;
196+
sphere.transform.parent = cube.transform;
197+
quad.transform.parent = cube.transform;
198+
199+
200+
//Create a similar Heirarchy that we can use as our phony "exported" hierarchy.
201+
var cube2 = GameObject.CreatePrimitive(PrimitiveType.Cube);
202+
var capsule2 = GameObject.CreatePrimitive(PrimitiveType.Capsule);
203+
var sphere2 = GameObject.CreatePrimitive(PrimitiveType.Sphere);
204+
var quad2 = GameObject.CreatePrimitive(PrimitiveType.Quad);
205+
206+
capsule2.transform.parent = cube2.transform;
207+
sphere2.transform.parent = cube2.transform;
208+
quad2.transform.parent = cube2.transform;
209+
210+
var dictionary = ConvertToModel.MapNameToSourceRecursive(cube, cube2);
211+
212+
//We expect these to pass because we've given it an identical game object, as it would have after a normal export.
213+
Assert.AreEqual(capsule.name, dictionary[capsule.name].name);
214+
Assert.AreEqual(sphere.name, dictionary[sphere.name].name);
215+
Assert.AreEqual(quad.name, dictionary[quad.name].name);
216+
217+
Assert.AreNotSame(cube.GetInstanceID(), cube2.GetInstanceID());
218+
}
185219
}
186220
}

0 commit comments

Comments
 (0)