using NUnit.Framework; using System.Collections; using System.IO; using UnityEditor; using UnityEngine; using UnityEngine.TestTools; /// /// Test the MinigameProgressCard class /// [TestFixture] public class MinigameProgressCardTests { /// /// Wait time between scene transitions /// private const float WAIT_TIME = 0.2f; /// /// Setup the MinigameProgressCard tests /// [UnitySetUp] public IEnumerator Setup_MinigameProgressCard() { 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\":1027,\"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().SwapScene("Accounts/Scenes/UserProgressScreen"); yield return new WaitForSeconds(WAIT_TIME); } /// /// Cleanup after testing /// [TearDown] public void TearDown_ChangeUserScreen() { PersistentDataController.PATH = null; } /// /// Test whether every item that needs to be assign in the editor, is assigned /// [Test] public void Test_EditorAssignments() { var card = GameObject.FindObjectOfType(); Assert.IsNotNull(card); Assert.IsNotNull(card.button); Assert.IsNotNull(card.minigameProgress); Assert.IsNotNull(card.minigameList); Assert.IsNotNull(card.thumbnail); Assert.IsNotNull(card.title); Assert.IsNotNull(card.highscore); } /// /// Test whether the card is correctly initialized /// [Test] public void Test_Start() { var card = GameObject.FindObjectOfType(); Minigame minigame = card.minigameList.GetMinigameByIndex(card.minigameProgress.minigameIndex); Assert.AreEqual(minigame.thumbnail, card.thumbnail.sprite); Assert.AreEqual(minigame.title, card.title.text); Assert.AreEqual(card.highscore.text, $"Topscore: {card.minigameProgress.highestScores[0].scoreValue}"); } }