diff --git a/Assets/UniGLTF/Tests/UniGLTF/MeshExportValidatorTests.cs b/Assets/UniGLTF/Tests/UniGLTF/MeshExportValidatorTests.cs new file mode 100644 index 0000000000..72cd34ad3a --- /dev/null +++ b/Assets/UniGLTF/Tests/UniGLTF/MeshExportValidatorTests.cs @@ -0,0 +1,84 @@ +using NUnit.Framework; +using System.Linq; +using UnityEngine; + +namespace UniGLTF +{ + public class MeshExportValidatorTests + { + [Test] + public void NoMaterialTest() + { + var validator = ScriptableObject.CreateInstance(); + var root = new GameObject("root"); + + try + { + var cube = GameObject.CreatePrimitive(PrimitiveType.Cube); + cube.transform.SetParent(root.transform); + + var renderer = cube.GetComponent(); + renderer.sharedMaterials = new Material[0]; + + validator.SetRoot(root, MeshExportSettings.Default); + var vs = validator.Validate(root); + Assert.False(vs.All(x => x.CanExport)); + } + finally + { + GameObject.DestroyImmediate(root); + ScriptableObject.DestroyImmediate(validator); + } + } + + [Test] + public void NullMaterialTest() + { + var validator = ScriptableObject.CreateInstance(); + var root = new GameObject("root"); + + try + { + var cube = GameObject.CreatePrimitive(PrimitiveType.Cube); + cube.transform.SetParent(root.transform); + + var renderer = cube.GetComponent(); + renderer.sharedMaterials = new Material[] { null }; + + validator.SetRoot(root, MeshExportSettings.Default); + var vs = validator.Validate(root); + Assert.False(vs.All(x => x.CanExport)); + } + finally + { + GameObject.DestroyImmediate(root); + ScriptableObject.DestroyImmediate(validator); + } + } + + [Test] + public void NullMaterialsTest() + { + var validator = ScriptableObject.CreateInstance(); + var root = new GameObject("root"); + + try + { + var cube = GameObject.CreatePrimitive(PrimitiveType.Cube); + cube.transform.SetParent(root.transform); + + var renderer = cube.GetComponent(); + renderer.sharedMaterials = new Material[] { null, null }; + + validator.SetRoot(root, MeshExportSettings.Default); + var vs = validator.Validate(root); + Assert.False(vs.All(x => x.CanExport)); + } + finally + { + GameObject.DestroyImmediate(root); + ScriptableObject.DestroyImmediate(validator); + } + } + } +} diff --git a/Assets/UniGLTF/Tests/UniGLTF/MeshExportValidatorTests.cs.meta b/Assets/UniGLTF/Tests/UniGLTF/MeshExportValidatorTests.cs.meta new file mode 100644 index 0000000000..ac66db37c1 --- /dev/null +++ b/Assets/UniGLTF/Tests/UniGLTF/MeshExportValidatorTests.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 125889535256e95488606b67463c18cb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: