Files
Bachelor-Arbeit-Adrian-Haefner/Library/PackageCache/com.unity.xr.arfoundation@ef86c118adc4/Tests/Runtime/XRSimulation/SimulationSessionTestSetup.cs
adriadri6972 d3d9c5f833 upload project
2025-07-31 15:21:08 +02:00

61 lines
1.8 KiB
C#

using NUnit.Framework;
using UnityEngine.XR.ARSubsystems;
namespace UnityEngine.XR.Simulation.Tests
{
abstract class SimulationSessionTestSetup : SimulationTestSetup
{
protected void SetupSession()
{
SetupLoader();
AddXROrigin();
StartSubsystem<XRSessionSubsystem, SimulationSessionSubsystem>();
}
protected void TearDownSession()
{
StopSubsystem<XRSessionSubsystem, SimulationSessionSubsystem>();
RemoveXROrigin();
TearDownLoader();
}
protected void SetupInput()
{
StartSubsystem<XRInputSubsystem, XRInputSubsystem>();
}
protected void TearDownInput()
{
StopSubsystem<XRInputSubsystem, XRInputSubsystem>();
}
protected void StartSubsystem<TXRSubsystem, TSubsystem>()
where TXRSubsystem : class, ISubsystem, new()
where TSubsystem : class, ISubsystem, new()
{
var xrSubsystem = GetSimulationSubsystem<TXRSubsystem, TSubsystem>();
// Initial state is not running
Assert.IsFalse(xrSubsystem.running);
// After start subsystem is running
xrSubsystem.Start();
Assert.IsTrue(xrSubsystem.running);
}
protected void StopSubsystem<TXRSubsystem, TSubsystem>()
where TXRSubsystem : class, ISubsystem, new()
where TSubsystem : class, ISubsystem, new()
{
var xrSubsystem = GetSimulationSubsystem<TXRSubsystem, TSubsystem>();
// Initial state is running
Assert.IsTrue(xrSubsystem.running);
// After stop subsystem is not running
xrSubsystem.Stop();
Assert.IsFalse(xrSubsystem.running);
}
}
}