using NUnit.Framework; using System.Collections; using System.IO; using UnityEditor; using UnityEngine; using UnityEngine.TestTools; /// /// Test the UserCard class /// [TestFixture] public class UserCardTests { /// /// Wait time between scene transitions /// private const float WAIT_TIME = 0.2f; /// /// Setup the tests /// [UnitySetUp] public IEnumerator Setup_UserCard() { string path = $"{Application.persistentDataPath}/wesign_unit_test.json"; string oneUser = "{\"version\":1027,\"users\":[{\"entries\":[],\"username\":\"Tester0\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"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/ChangeUserScreen"); yield return new WaitForSeconds(WAIT_TIME); } /// /// Cleanup after testing /// [TearDown] public void TearDown_UserCard() { 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.user); Assert.IsNotNull(card.button); Assert.IsNotNull(card.avatar); Assert.IsNotNull(card.username); } /// /// Test whether the card is correctly initialized /// [Test] public void Test_Start() { var card = GameObject.FindObjectOfType(); Assert.AreEqual(card.user.GetAvatar(), card.avatar.sprite); Assert.AreEqual(card.user.GetUsername(), card.username.text); } }