Skip to content

Commit fe1c9c6

Browse files
committed
added unit tests
- test for RemoveRedundantObjects - test for ConvertToValidFilename
1 parent 7cd30c2 commit fe1c9c6

File tree

1 file changed

+77
-7
lines changed

1 file changed

+77
-7
lines changed

Assets/FbxExporters/Editor/UnitTests/ModelExporterTest.cs

Lines changed: 77 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,18 +33,31 @@ public void Term()
3333
}
3434
}
3535

36+
/// <summary>
37+
/// Creates a GameObject.
38+
/// Adds the object to the list of objects to be deleted
39+
/// on TearDown.
40+
/// </summary>
41+
/// <returns>The game object.</returns>
42+
/// <param name="name">Name.</param>
43+
/// <param name="parent">Parent.</param>
44+
/// <param name="type">Primitive Type.</param>
45+
private GameObject CreateGameObject (string name, Transform parent = null, PrimitiveType type = PrimitiveType.Cube)
46+
{
47+
var go = GameObject.CreatePrimitive (type);
48+
go.name = name;
49+
go.transform.SetParent (parent);
50+
m_createdObjects.Add (go);
51+
return go;
52+
}
3653

3754
[Test]
3855
public void TestFindCenter ()
3956
{
4057
// Create 3 objects
41-
var cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
42-
var cube1 = GameObject.CreatePrimitive (PrimitiveType.Cube);
43-
var cube2 = GameObject.CreatePrimitive (PrimitiveType.Cube);
44-
45-
m_createdObjects.Add (cube);
46-
m_createdObjects.Add (cube1);
47-
m_createdObjects.Add (cube2);
58+
var cube = CreateGameObject ("cube");
59+
var cube1 = CreateGameObject ("cube1");
60+
var cube2 = CreateGameObject ("cube2");
4861

4962
// Set their transforms
5063
cube.transform.localPosition = new Vector3 (23, -5, 10);
@@ -59,5 +72,62 @@ public void TestFindCenter ()
5972
// Check that it is what we expect
6073
Assert.AreEqual(center, new Vector3(26, -2.5f, 6.75f));
6174
}
75+
76+
[Test]
77+
public void TestRemoveRedundantObjects ()
78+
{
79+
var root = CreateGameObject ("root");
80+
var child1 = CreateGameObject ("child1", root.transform);
81+
var child2 = CreateGameObject ("child2", root.transform);
82+
var root2 = CreateGameObject ("root2");
83+
84+
// test set: root
85+
// expected result: root
86+
var result = FbxExporters.Editor.ModelExporter.RemoveRedundantObjects(new Object[]{root});
87+
Assert.AreEqual (1, result.Count);
88+
Assert.IsTrue (result.Contains (root));
89+
90+
// test set: root, child1
91+
// expected result: root
92+
result = FbxExporters.Editor.ModelExporter.RemoveRedundantObjects(new Object[]{root, child1});
93+
Assert.AreEqual (1, result.Count);
94+
Assert.IsTrue (result.Contains (root));
95+
96+
// test set: root, child1, child2, root2
97+
// expected result: root, root2
98+
result = FbxExporters.Editor.ModelExporter.RemoveRedundantObjects(new Object[]{root, root2, child2, child1});
99+
Assert.AreEqual (2, result.Count);
100+
Assert.IsTrue (result.Contains (root));
101+
Assert.IsTrue (result.Contains (root2));
102+
103+
// test set: child1, child2
104+
// expected result: child1, child2
105+
result = FbxExporters.Editor.ModelExporter.RemoveRedundantObjects(new Object[]{child2, child1});
106+
Assert.AreEqual (2, result.Count);
107+
Assert.IsTrue (result.Contains (child1));
108+
Assert.IsTrue (result.Contains (child2));
109+
}
110+
111+
[Test]
112+
public void TestConvertToValidFilename()
113+
{
114+
// test already valid filenames
115+
var filename = "foobar.fbx";
116+
var result = FbxExporters.Editor.ModelExporter.ConvertToValidFilename (filename);
117+
Assert.AreEqual (filename, result);
118+
119+
filename = "foo_bar 1.fbx";
120+
result = FbxExporters.Editor.ModelExporter.ConvertToValidFilename (filename);
121+
Assert.AreEqual (filename, result);
122+
123+
// test invalid filenames
124+
filename = "?foo**bar///.fbx";
125+
result = FbxExporters.Editor.ModelExporter.ConvertToValidFilename (filename);
126+
Assert.AreEqual ("_foo__bar___.fbx", result);
127+
128+
filename = "foo$?ba%r 2.fbx";
129+
result = FbxExporters.Editor.ModelExporter.ConvertToValidFilename (filename);
130+
Assert.AreEqual ("foo$_ba%r 2.fbx", result);
131+
}
62132
}
63133
}

0 commit comments

Comments
 (0)