using NUnit.Framework; using System.Collections; using System.IO; using UnityEditor; using UnityEngine; using UnityEngine.TestTools; public class SpellingBeeControllerTests { [UnitySetUp] public IEnumerator SetupFunction() { string path = $"{Application.persistentDataPath}/wesign_unit_test.json"; string oneUser = $"{{\"version\":{PersistentDataController.VERSION},\"users\":[{{\"entries\":[],\"username\":\"TEST\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}}],\"currentUser\":0,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0}}"; File.WriteAllText(path, oneUser); PersistentDataController.GetInstance().Load(); AssetDatabase.LoadAssetAtPath("Assets/Accounts/ScriptableObjects/UserAvatarList.asset").Awake(); // Go to the minigame-selection scene to make sure that the minigameIndex is set correctly SystemController.GetInstance().LoadNextScene("Common/Scenes/ListMinigamesScreen"); yield return new WaitForSeconds(0.2f); ListMinigamesScreen minigameScreen = (ListMinigamesScreen)GameObject.FindObjectOfType(typeof(ListMinigamesScreen)); minigameScreen.minigameList.SetCurrentMinigame(MinigameIndex.SPELLING_BEE); SystemController.GetInstance().LoadNextScene("SpellingBee/Scenes/SpellingBeeGame"); yield return new WaitForSeconds(0.2f); } [UnityTest] public IEnumerator CheckScoreTest() { SpellingBeeController spellingBeeController = (SpellingBeeController)GameObject.FindObjectOfType(typeof(SpellingBeeController)); yield return new WaitForSeconds(0.2f); Assert.AreEqual(0, spellingBeeController.CalculateScore()); spellingBeeController.NextWord(); Assert.AreEqual(0, spellingBeeController.CalculateScore()); spellingBeeController.NextLetter(true); Assert.AreEqual(10, spellingBeeController.CalculateScore()); } [UnityTest] public IEnumerator ActivateGameOverTest() { SpellingBeeController spellingBeeController = (SpellingBeeController)GameObject.FindObjectOfType(typeof(SpellingBeeController)); spellingBeeController.ActivateEnd(false); yield return new WaitForSeconds(0.2f); SpellingBeeGameEndedPanel SpellingBeeGameEndedPanel = (SpellingBeeGameEndedPanel)GameObject.FindObjectOfType(typeof(SpellingBeeGameEndedPanel)); Assert.NotNull(SpellingBeeGameEndedPanel); Assert.AreEqual("VERLOREN", SpellingBeeGameEndedPanel.endText.text); } [UnityTest] public IEnumerator ActivateWinTests() { SpellingBeeController spellingBeeController = (SpellingBeeController)GameObject.FindObjectOfType(typeof(SpellingBeeController)); spellingBeeController.ActivateEnd(true); yield return new WaitForSeconds(0.2f); SpellingBeeGameEndedPanel SpellingBeeGameEndedPanel = (SpellingBeeGameEndedPanel)GameObject.FindObjectOfType(typeof(SpellingBeeGameEndedPanel)); Assert.NotNull(SpellingBeeGameEndedPanel); Assert.AreEqual("GEWONNEN", SpellingBeeGameEndedPanel.endText.text); } [UnityTest] public IEnumerator CheckGameOverTest() { SpellingBeeController spellingBeeController = (SpellingBeeController)GameObject.FindObjectOfType(typeof(SpellingBeeController)); spellingBeeController.AddSeconds(-60); yield return new WaitForSeconds(0.1f); SpellingBeeGameEndedPanel SpellingBeeGameEndedPanel = (SpellingBeeGameEndedPanel)GameObject.FindObjectOfType(typeof(SpellingBeeGameEndedPanel)); Assert.NotNull(SpellingBeeGameEndedPanel); Assert.AreEqual("VERLOREN", SpellingBeeGameEndedPanel.endText.text); } }