Skip to content

Commit 19a502a

Browse files
authored
[UUM-138957] Remove runtime test dependency on UnityEditor APIs (#664)
* moving assets to a Resources folder * moving MeshImporter tests to editor tests * Moving needed methods from TestUtility to RuntimeUtility * updating runtime tests and asmdef * adding last changes in tests assets * Making the Framework tests Editor only * Changelog * reverting asmdef non-necessary changes * clean test code * moveing from DestroyImmediate to Destroy for runtime tests
1 parent bf3d10a commit 19a502a

258 files changed

Lines changed: 855 additions & 223 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 4 additions & 0 deletions

Tests/Templates/UnityEngine.Mesh/Runtime.meta renamed to Tests/Editor/Import.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Tests/Runtime/MeshOps/ProBuilderizeTests.cs renamed to Tests/Editor/Import/MeshImporterTests.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
using UnityEngine.ProBuilder.MeshOperations;
99
using UnityEngine.ProBuilder.Shapes;
1010

11-
class ProBuilderizeTests : TemporaryAssetTest
11+
class MeshImporterTests : TemporaryAssetTest
1212
{
1313
[Test]
1414
public static void ImportCube_MatchesDefaultCube()
@@ -50,20 +50,20 @@ public static void ImportQuads_MatchesWindingOrder()
5050
Assert.IsNotNull(source);
5151

5252
var instance = (GameObject)UObject.Instantiate(source);
53-
var mf = instance.gameObject.GetComponent<MeshFilter>();
54-
var mr = instance.gameObject.GetComponent<MeshRenderer>();
53+
var mf = instance.gameObject.GetComponent<MeshFilter>();
54+
var mr = instance.gameObject.GetComponent<MeshRenderer>();
5555
var result = new GameObject().AddComponent<ProBuilderMesh>();
56-
var importer = new MeshImporter(mf.sharedMesh, mr.sharedMaterials, result);
56+
var importer = new MeshImporter(mf.sharedMesh, mr.sharedMaterials, result);
5757

58-
Assert.DoesNotThrow(() =>
58+
Assert.DoesNotThrow(() =>
59+
{
60+
importer.Import(new MeshImportSettings()
5961
{
60-
importer.Import(new MeshImportSettings()
61-
{
62-
quads = true,
63-
smoothing = false,
64-
smoothingAngle = 1f
65-
});
62+
quads = true,
63+
smoothing = false,
64+
smoothingAngle = 1f
6665
});
66+
});
6767

6868
result.Rebuild();
6969

File renamed without changes.

Tests/Framework/TestUtility.cs

Lines changed: 0 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -85,53 +85,6 @@ public static string temporarySavedAssetsDirectory
8585
get { return k_TempDirectory; }
8686
}
8787

88-
public class BuiltInPrimitives : IDisposable, IEnumerable<ProBuilderMesh>
89-
{
90-
ProBuilderMesh[] m_Shapes;
91-
92-
public static ProBuilderMesh[] GetBasicShapes()
93-
{
94-
var shapes = Enum.GetValues(typeof(ShapeType)) as ShapeType[];
95-
ProBuilderMesh[] primitives = new ProBuilderMesh[shapes.Length];
96-
97-
for (int i = 0, c = shapes.Length; i < c; i++)
98-
{
99-
primitives[i] = ShapeGenerator.CreateShape(shapes[i]);
100-
primitives[i].GetComponent<MeshFilter>().sharedMesh.name = shapes[i].ToString();
101-
}
102-
return primitives;
103-
}
104-
105-
public BuiltInPrimitives()
106-
{
107-
m_Shapes = GetBasicShapes();
108-
}
109-
110-
public int Count { get { return m_Shapes.Length; } }
111-
112-
public ProBuilderMesh this[int i]
113-
{
114-
get { return m_Shapes[i]; }
115-
set { m_Shapes[i] = value; }
116-
}
117-
118-
public void Dispose()
119-
{
120-
for (int i = 0, c = m_Shapes.Length; i < c; i++)
121-
UObject.DestroyImmediate(m_Shapes[i].gameObject);
122-
}
123-
124-
IEnumerator<ProBuilderMesh> IEnumerable<ProBuilderMesh>.GetEnumerator()
125-
{
126-
return ((IEnumerable<ProBuilderMesh>)m_Shapes).GetEnumerator();
127-
}
128-
129-
public IEnumerator GetEnumerator()
130-
{
131-
return m_Shapes.GetEnumerator();
132-
}
133-
}
134-
13588
public class IgnoreAssertScope : IDisposable
13689
{
13790
bool m_SavedState;
@@ -158,14 +111,6 @@ static string ToAssetPath(string path)
158111
return path.Replace("\\", "/").Replace(Application.dataPath, "Assets/");
159112
}
160113

161-
public static void AssertSequenceEqual<T>(IList<T> left, IList<T> right)
162-
{
163-
Assert.AreEqual(left.Count, right.Count, "Count");
164-
165-
for (int i = 0, c = left.Count; i < c; i++)
166-
Assert.AreEqual(left[i], right[i], "index " + i);
167-
}
168-
169114
public static void AssertMeshAttributesValid(Mesh mesh)
170115
{
171116
int vertexCount = mesh.vertexCount;
@@ -529,45 +474,6 @@ public static Material greenMaterial
529474
get { return AssetDatabase.LoadAssetAtPath<Material>(k_GreenMaterialPath); }
530475
}
531476

532-
public static SimpleTuple<ProBuilderMesh, Face> CreateCubeWithNonContiguousMergedFace()
533-
{
534-
var cube = ShapeFactory.Instantiate<Cube>();
535-
536-
Assume.That(cube, Is.Not.Null);
537-
538-
int index = 1;
539-
Face a = cube.faces[0], b = cube.faces[index++];
540-
Assume.That(a, Is.Not.Null);
541-
Assume.That(b, Is.Not.Null);
542-
543-
while (FacesAreAdjacent(cube, a, b) && index < cube.faceCount)
544-
b = cube.faces[index++];
545-
546-
Assume.That(FacesAreAdjacent(cube, a, b), Is.False);
547-
548-
var res = MergeElements.Merge(cube, new Face[] { a, b });
549-
550-
return new SimpleTuple<ProBuilderMesh, Face>(cube, res);
551-
}
552-
553-
static bool FacesAreAdjacent(ProBuilderMesh mesh, Face a, Face b)
554-
{
555-
for (int i = 0, c = a.edgesInternal.Length; i < c; i++)
556-
{
557-
var ea = mesh.GetSharedVertexHandleEdge(a.edgesInternal[i]);
558-
559-
for (int n = 0; n < b.edgesInternal.Length; n++)
560-
{
561-
var eb = mesh.GetSharedVertexHandleEdge(b.edgesInternal[n]);
562-
563-
if (ea == eb)
564-
return true;
565-
}
566-
}
567-
568-
return false;
569-
}
570-
571477
public static void AssertMeshIsValid(ProBuilderMesh mesh)
572478
{
573479
Assert.That(mesh, Is.Not.Null);

Tests/Framework/Unity.ProBuilder.Tests.Framework.asmdef

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
"optionalUnityReferences": [
77
"TestAssemblies"
88
],
9-
"includePlatforms": [],
9+
"includePlatforms": [
10+
"Editor"
11+
],
1012
"excludePlatforms": [],
1113
"allowUnsafeCode": false
1214
}

Tests/Templates/UnityEngine.Mesh/Runtime/MeshOps.meta renamed to Tests/Resources.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Tests/Templates/UnityEngine.Mesh/Runtime/Shape.meta renamed to Tests/Resources/UnityEngine.Mesh.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Tests/Templates/UnityEngine.Mesh/Runtime/MeshOps/BridgeEdgesTests.meta renamed to Tests/Resources/UnityEngine.Mesh/BridgeEdgesTests.meta

File renamed without changes.

Tests/Templates/UnityEngine.Mesh/Runtime/MeshOps/BridgeEdgesTests/Bridge_TwoConnectedEdges_CreatesTriangle.meta renamed to Tests/Resources/UnityEngine.Mesh/BridgeEdgesTests/Bridge_TwoConnectedEdges_CreatesTriangle.meta

File renamed without changes.

0 commit comments

Comments
 (0)