Skip to content

Commit ee0ec86

Browse files
committed
Applying code review suggestions
1 parent 83919b5 commit ee0ec86

File tree

4 files changed

+83
-14
lines changed

4 files changed

+83
-14
lines changed

package/com.unity.formats.usd/Tests/Editor/BaseFixtureEditor.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@
1313
// limitations under the License.
1414

1515
using NUnit.Framework;
16+
using System.IO;
17+
using UnityEditor;
1618
using UnityEditor.SceneManagement;
19+
using USD.NET;
1720

1821
namespace Unity.Formats.USD.Tests
1922
{
@@ -24,5 +27,12 @@ public void EnsureEmptyScene()
2427
{
2528
m_UnityScene = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Single);
2629
}
30+
31+
protected Scene OpenUSDGUIDAssetScene(string guid, out string filePath)
32+
{
33+
filePath = Path.GetFullPath(AssetDatabase.GUIDToAssetPath(guid));
34+
var stage = pxr.UsdStage.Open(filePath, pxr.UsdStage.InitialLoadSet.LoadNone);
35+
return Scene.Open(stage);
36+
}
2737
}
2838
}

package/com.unity.formats.usd/Tests/Editor/UsdAssetReloadTests.cs

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,10 @@ public class UsdAssetReloadTests : BaseFixtureEditor
1616
const string k_USDGUID = "68d552f46d3740c47b17d0ac1c531e76"; // reloadTest.usda
1717
const string k_USDModifiedGUID = "4eccf405e5254fd4089cef2f9bcbd882"; // reloadTest_modified.usda
1818
const string k_USDOriginGUID = "069ae5d2d8a36fd4b8a0395de731eda0"; // reloadTest_origin.usda
19-
const string k_USDZGUID = "a90ff3ebef4a2aa42b559da07e4151f5"; // test-roughness.usdz
2019
const string k_USDInstancerGUID = "bfb4012f0c339574296e64f4d3c6c595"; // instanced_cubes.usda
2120

2221
string testFilePath;
2322
string testFileModifiedPath;
24-
string prefabUsdPath;
2523

2624
GameObject m_usdRoot;
2725
UsdAsset m_usdAsset;
@@ -38,24 +36,12 @@ public void Setup()
3836
Assume.That(m_usdAsset, Is.Not.Null, "Could not find USDAsset component on root gameobject.");
3937
}
4038

41-
private Scene OpenUSDGUIDAssetScene(string guid, out string filePath)
42-
{
43-
filePath = Path.GetFullPath(AssetDatabase.GUIDToAssetPath(guid));
44-
var stage = pxr.UsdStage.Open(filePath, pxr.UsdStage.InitialLoadSet.LoadNone);
45-
return Scene.Open(stage);
46-
}
47-
4839
[TearDown]
4940
public void TearDown()
5041
{
5142
m_usdAsset.DestroyAllImportedObjects();
5243
GameObject.DestroyImmediate(m_usdRoot);
5344

54-
if (!string.IsNullOrEmpty(prefabUsdPath))
55-
{
56-
AssetDatabase.DeleteAsset(prefabUsdPath);
57-
}
58-
5945
// Restore test files.
6046
ResetTestFile();
6147
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
using NUnit.Framework;
2+
using UnityEditor;
3+
4+
namespace Unity.Formats.USD.Tests
5+
{
6+
public class UsdPrefabTests : BaseFixtureEditor
7+
{
8+
const string k_USDZGUID = "a90ff3ebef4a2aa42b559da07e4151f5"; // test-roughness.usdz
9+
10+
static string m_prefabUsdPath;
11+
12+
[TearDown]
13+
public void TearDown()
14+
{
15+
if (!string.IsNullOrEmpty(m_prefabUsdPath))
16+
{
17+
AssetDatabase.DeleteAsset(m_prefabUsdPath);
18+
}
19+
}
20+
21+
protected void ImportAsPrefab(string usdGUID)
22+
{
23+
var scene = OpenUSDGUIDAssetScene(usdGUID, out _);
24+
m_prefabUsdPath = ImportHelpers.ImportAsPrefab(scene);
25+
scene.Close();
26+
}
27+
28+
public class Reload : UsdPrefabTests
29+
{
30+
[TestCase(MaterialImportMode.ImportDisplayColor)]
31+
[TestCase(MaterialImportMode.None)]
32+
[TestCase(MaterialImportMode.ImportPreviewSurface)]
33+
[Ignore("USDU-276")]
34+
public void UsdPrefab_ForceReload_Succeed(MaterialImportMode mode)
35+
{
36+
ImportAsPrefab(k_USDZGUID);
37+
38+
var prefabAsset = AssetDatabase.LoadAssetAtPath<UsdAsset>(m_prefabUsdPath);
39+
prefabAsset.m_materialImportMode = mode;
40+
prefabAsset.Reload(true);
41+
42+
// Assertion is not required as it will fail on unhandled error
43+
}
44+
45+
[Test]
46+
[Ignore("USDU-276")]
47+
public void UsdPrefab_ForceReload_ImportPreviewSurface_DoesNotDirtyScene()
48+
{
49+
var initialRootGameObjects = UnityEngine.SceneManagement.SceneManager.GetActiveScene().GetRootGameObjects();
50+
ImportAsPrefab(k_USDZGUID);
51+
52+
var prefabAsset = AssetDatabase.LoadAssetAtPath<UsdAsset>(m_prefabUsdPath);
53+
prefabAsset.m_materialImportMode = MaterialImportMode.ImportPreviewSurface;
54+
prefabAsset.Reload(true);
55+
56+
var newRootGameObjects = UnityEngine.SceneManagement.SceneManager.GetActiveScene().GetRootGameObjects();
57+
58+
Assert.AreEqual(initialRootGameObjects, newRootGameObjects, "Prefab Reload does not clean up the scene");
59+
}
60+
}
61+
}
62+
}

package/com.unity.formats.usd/Tests/Editor/UsdPrefabTests.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)