diff --git a/package/com.unity.formats.usd/Tests/Editor/InitUsdTests.cs b/package/com.unity.formats.usd/Tests/Editor/InitUsdTests.cs new file mode 100644 index 000000000..70a3081a0 --- /dev/null +++ b/package/com.unity.formats.usd/Tests/Editor/InitUsdTests.cs @@ -0,0 +1,61 @@ +using System.IO; +using NUnit.Framework; +using System.Reflection; +using Unity.Formats.USD; +using UnityEngine; + +public class InitUsdTests +{ + [Test] + [Ignore("[USDU-249]")] + public void SetupUsdPath_InvalidPath_Error() + { + var invalidFilePath = "\\NonExisting\\Path\\"; + + // SetupUsdPath function is a private function + var setUpMethod = GetMethod("SetupUsdPath"); + + var expectedError = Assert.Throws(() => setUpMethod.Invoke(null, new object[] { invalidFilePath }), "Error was expected but not thrown"); + Assert.IsInstanceOf(expectedError.InnerException); + Assert.AreEqual(string.Format("Could not find file '{0}'.", invalidFilePath), expectedError.InnerException.Message, "Unexpected error message was given"); + } + + [Test] + public void SetupUsdPath_EmptyPath_Error() + { + // SetupUsdPath function is a private function + var setUpMethod = GetMethod("SetupUsdPath"); + + var expectedError = Assert.Throws(() => setUpMethod.Invoke(null, new object[] { "" }), "Error was expected but not thrown"); + Assert.IsInstanceOf(expectedError.InnerException); + Assert.AreEqual("The specified path is not of a legal form (empty).", expectedError.InnerException.Message, "Unexpected error message was given"); + } + + [Test] + public void InitUsd_Initialize() + { + // Reset 'm_usdInitialized' for accurate testing + ResetInitUsd(); + + Assert.True(InitUsd.Initialize(), "USD Initialize failed"); + } + + [TearDown] + public void ResetInitUsd() + { + var isUsdInitialized = typeof(InitUsd).GetField("m_usdInitialized", (BindingFlags.Static | BindingFlags.NonPublic)); + isUsdInitialized.SetValue(null, false); + } + + private MethodInfo GetMethod(string methodName) + { + var method = typeof(InitUsd).GetMethod(methodName, (BindingFlags.NonPublic | BindingFlags.Static)); + + if (method == null) + { + Assert.Fail(string.Format("{0} method not found", methodName)); + } + + return method; + } +} diff --git a/package/com.unity.formats.usd/Tests/Editor/InitUsdTests.cs.meta b/package/com.unity.formats.usd/Tests/Editor/InitUsdTests.cs.meta new file mode 100644 index 000000000..5b330c506 --- /dev/null +++ b/package/com.unity.formats.usd/Tests/Editor/InitUsdTests.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 321361317709ca04bb9c63cea4906b0a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: