using NUnit.Framework; using System.Collections; using System.IO; using UnityEditor; using UnityEngine; using UnityEngine.TestTools; /// /// Test the MinigameActivityScreen class /// public class MinigameActivityScreenTests { /// /// Setup the environment before each test /// [UnitySetUp] public IEnumerator SetupFunction() { string path = $"{Application.persistentDataPath}/wesign_unit_test.json"; string oneUser = $"{{\"version\":1537,\"users\":[{{\"entries\":[],\"username\":\"TEST\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}}],\"currentUser\":0,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0,\"useGPU\":false}}"; File.WriteAllText(path, oneUser); PersistentDataController.PATH = path; PersistentDataController.GetInstance().Load(); AssetDatabase.LoadAssetAtPath("Assets/Accounts/ScriptableObjects/UserAvatarList.asset").Awake(); SystemController.GetInstance().LoadNextScene("Common/Scenes/ListMinigamesScreen"); yield return new WaitForSeconds(0.2f); } /// /// Cleanup after testing /// [TearDown] public void TearDown_MiniGameActivityScreenTests() { PersistentDataController.PATH = null; } /// /// Test loading the spellingbee minigame /// [UnityTest] public IEnumerator GotoSpellingBeeTest() { var listMinigamesScreen = GameObject.FindObjectOfType(); listMinigamesScreen.minigameList.SetCurrentMinigame(MinigameIndex.SPELLING_BEE); listMinigamesScreen.LoadScene("Common/Scenes/MinigameActivityScreen"); yield return new WaitForSeconds(0.2f); } /// /// Test loading the Hangman minigame /// [UnityTest] public IEnumerator GotoHangmanTest() { var listMinigamesScreen = GameObject.FindObjectOfType(); listMinigamesScreen.minigameList.SetCurrentMinigame(MinigameIndex.HANGMAN); listMinigamesScreen.LoadScene("Common/Scenes/MinigameActivityScreen"); yield return new WaitForSeconds(0.2f); } /// /// Test loading the JustSign minigame /// [UnityTest] public IEnumerator GotoJustSignTest() { var listMinigamesScreen = GameObject.FindObjectOfType(); listMinigamesScreen.minigameList.SetCurrentMinigame(MinigameIndex.JUST_SIGN); listMinigamesScreen.LoadScene("Common/Scenes/MinigameActivityScreen"); yield return new WaitForSeconds(0.2f); } /// /// Check if Progress is loading correctly /// [UnityTest] public IEnumerator ProgressLoadTest() { string path = $"{Application.persistentDataPath}/wesign_unit_test.json"; string minigame = "{\"entries\":[],\"minigameIndex\":1,\"latestScores\":[{\"scoreValue\":70,\"time\":\"19/04/2023 22:32:39\"},{\"scoreValue\":55,\"time\":\"20/04/2023 11:50:10\"},{\"scoreValue\":55,\"time\":\"20/04/2023 13:27:15\"}],\"highestScores\":[{\"scoreValue\":70,\"time\":\"19/04/2023 22:32:39\"},{\"scoreValue\":55,\"time\":\"20/04/2023 11:50:10\"},{\"scoreValue\":55,\"time\":\"20/04/2023 13:27:15\"}]}"; string oneUser = $"{{\"version\":1537,\"users\":[{{\"entries\":[],\"username\":\"Tester0\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[{minigame}],\"courses\":[]}}],\"currentUser\":0,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0}}"; File.WriteAllText(path, oneUser); PersistentDataController.PATH = path; PersistentDataController.GetInstance().Load(); AssetDatabase.LoadAssetAtPath("Assets/Accounts/ScriptableObjects/UserAvatarList.asset").Awake(); SystemController.GetInstance().LoadNextScene("Common/Scenes/ListMinigamesScreen"); yield return new WaitForSeconds(0.2f); var listMinigamesScreen = GameObject.FindObjectOfType(); listMinigamesScreen.minigameList.SetCurrentMinigame(MinigameIndex.HANGMAN); listMinigamesScreen.LoadScene("Common/Scenes/MinigameActivityScreen"); yield return new WaitForSeconds(0.2f); } }