Skip to content

Commit

Permalink
add transitiontoscenesfromall test
Browse files Browse the repository at this point in the history
  • Loading branch information
joaoborks committed Aug 27, 2024
1 parent 18d959e commit 4d67fb5
Showing 1 changed file with 46 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -199,13 +199,57 @@ public IEnumerator TransitionToScenesFromScenes([ValueSource(nameof(_sceneLoader

void sceneLoaded(Scene scene)
{
UnityEngine.Debug.Log($"loaded {scene.handle} {scene.name}");
loadedScenes.Add(scene);
}

void sceneUnloaded(Scene scene)
{
UnityEngine.Debug.Log($"unloaded {scene.handle}");
unloadedScenes.Add(scene);
}
}

[UnityTest]
public IEnumerator TransitionToScenesFromAll([ValueSource(nameof(_sceneLoaders))] ISceneLoader sceneLoader, [ValueSource(typeof(SceneTestEnvironment), nameof(SceneTestEnvironment.MultipleLoadSceneInfoList))] ILoadSceneInfo[] targetScenes, [ValueSource(nameof(LoadingSceneInfos))] ILoadSceneInfo loadingScene)
{
int sceneCount = targetScenes.Length;

var loadedScenes = new List<Scene>(sceneCount);

sceneLoader.Manager.SceneLoaded += sceneLoaded;
sceneLoader.LoadScenes(targetScenes);

var watch = new Stopwatch();
watch.Start();
yield return new WaitUntil(() => loadedScenes.Count == sceneCount || watch.ElapsedMilliseconds > SceneTestEnvironment.DefaultTimeout);
watch.Stop();

sceneCount += loadingScene == null ? 0 : 1;

var unloadedScenes = new List<Scene>(sceneCount);
sceneLoader.Manager.SceneUnloaded += sceneUnloaded;

loadedScenes.Clear();
sceneLoader.TransitionToScenesFromAll(targetScenes, 0, loadingScene);

watch.Restart();
yield return new WaitUntil(() => (loadedScenes.Count == sceneCount && unloadedScenes.Count == sceneCount) || watch.ElapsedMilliseconds > SceneTestEnvironment.DefaultTimeout);
watch.Stop();

sceneLoader.Manager.SceneLoaded -= sceneLoaded;
sceneLoader.Manager.SceneUnloaded -= sceneUnloaded;

yield return new WaitUntil(() => sceneLoader.Manager.TotalSceneCount == targetScenes.Length);

Assert.AreEqual(sceneCount, loadedScenes.Count);
Assert.AreEqual(sceneCount, unloadedScenes.Count);

void sceneLoaded(Scene scene)
{
loadedScenes.Add(scene);
}

void sceneUnloaded(Scene scene)
{
unloadedScenes.Add(scene);
}
}
Expand Down

0 comments on commit 4d67fb5

Please sign in to comment.