Files
adriadri6972 d3d9c5f833 upload project
2025-07-31 15:21:08 +02:00

66 lines
2.4 KiB
C#

using NUnit.Framework;
using UnityEngine.SceneManagement;
namespace UnityEngine.XR.Simulation.Tests
{
[TestFixture]
class SimulationEnvironmentTestFixture : SimulationSessionTestSetup
{
[OneTimeSetUp]
public void Setup() => SetupSession();
[OneTimeTearDown]
public void TearDown() => TearDownSession();
static Scene FindSimulationScene(string sceneName)
{
for (var i = 0; i < SceneManager.sceneCount; i++)
{
var scene = SceneManager.GetSceneAt(i);
if (scene.name == sceneName)
return scene;
}
return default;
}
static (string sceneName, Scene environmentScene) FindSimulationSceneAndAssertLoaded()
{
var activeSceneName = SimulationSceneManager.activeSceneName;
var environmentScene = FindSimulationScene(activeSceneName);
// Check simulation scene is initialized
Assert.AreEqual(environmentScene.name, activeSceneName);
Assert.AreEqual(1, environmentScene.rootCount, $"{activeSceneName} should only have one root GameObject.");
return (activeSceneName, environmentScene);
}
[Test]
[Order(1)]
public void EnvironmentLoaded()
{
(var sceneName, var environmentScene) = FindSimulationSceneAndAssertLoaded();
// Check the environment root is valid
var rootGO = environmentScene.GetRootGameObjects()[0];
var simulationEnvironment = rootGO.GetComponent<SimulationEnvironment>();
Assert.IsNotNull(simulationEnvironment, $"{sceneName} doesn't have a valid environment root GameObject.");
}
[Test]
[Order(2)]
public void CorrectEnvironmentPrefab()
{
(var _, var environmentScene) = FindSimulationSceneAndAssertLoaded();
// Check if the environment was created from the right prefab
// When instantiating a prefab the resulting GameObject will
// have a name "<Prefab.name>(Clone)
var environmentPrefab = XRSimulationPreferences.Instance.activeEnvironmentPrefab;
var rootGO = environmentScene.GetRootGameObjects()[0];
Assert.AreEqual($"{environmentPrefab.name}(Clone)", rootGO.name, $"\"{rootGO.name}\" root game object is not created from \"{environmentPrefab.name}\" environment prefab.");
}
}
}