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