using System.Collections; using BracerLib.Utility.Testing; using UnityEngine.Assertions; using UnityEngine.SceneManagement; using UnityEngine.TestTools; namespace BracerLib.Tests.Scenes { public class SceneTests : TestBase { private Scene oneTimeScene; private Scene testScene; [UnityTest] public IEnumerator CloseSceneWithZeroScenesRegistered() { var sceneCount = SceneManager.loadedSceneCount; Assert.IsTrue(sceneCount > 0); yield return CloseLatestScene(); Assert.IsTrue(SceneManager.loadedSceneCount == sceneCount); } [UnityTest] public IEnumerator CreateScenesWithSpecificLifetimes() { yield return OpenScene("Scenes/Tests/Test_Empty", true); oneTimeScene = SceneManager.GetSceneAt(SceneManager.loadedSceneCount - 1); Assert.IsTrue(oneTimeScene.isLoaded); yield return OpenScene("Scenes/Tests/Test_Empty"); testScene = SceneManager.GetSceneAt(SceneManager.loadedSceneCount - 1); Assert.IsTrue(testScene.isLoaded); } [UnityTest] public IEnumerator TestSceneLifetimes() { yield return null; Assert.IsTrue(oneTimeScene.isLoaded); Assert.IsFalse(testScene.isLoaded); } } }