From c34bb2f0d4180e4059633f0ebb2060a3f0af37ed Mon Sep 17 00:00:00 2001 From: oO <47592289+oocytanb@users.noreply.github.com> Date: Thu, 13 May 2021 22:30:07 +0900 Subject: [PATCH] Add test cases for validating null materials --- .../Tests/UniGLTF/MeshExportValidatorTests.cs | 84 +++++++++++++++++++ .../UniGLTF/MeshExportValidatorTests.cs.meta | 11 +++ 2 files changed, 95 insertions(+) create mode 100644 Assets/UniGLTF/Tests/UniGLTF/MeshExportValidatorTests.cs create mode 100644 Assets/UniGLTF/Tests/UniGLTF/MeshExportValidatorTests.cs.meta diff --git a/Assets/UniGLTF/Tests/UniGLTF/MeshExportValidatorTests.cs b/Assets/UniGLTF/Tests/UniGLTF/MeshExportValidatorTests.cs new file mode 100644 index 000000000..72cd34ad3 --- /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 000000000..ac66db37c --- /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: