using System.Collections; using System.Linq; using System.IO; using NUnit.Framework; using TMPro; using UnityEngine; using UnityEngine.TestTools; using UnityEngine.SceneManagement; public class GameControllerTests { [UnitySetUp] public IEnumerator SetupFunction() { string path = $"{Application.persistentDataPath}/unit_test_users.json"; var oneUser = "{\"currentUserIndex\": 0,\"storedUsers\": [{\"username\": \"TEST\",\"avatar\": {\"instanceID\": 40848},\"playtime\": 0.0,\"courses\": [],\"minigames\": []}]}"; using (StreamWriter writer = new StreamWriter(path)) { writer.Write(oneUser); } SystemController.GetInstance().LoadNextScene("SpellingBee/Scenes/Game"); yield return new WaitForSeconds(0.2f); } [UnityTest] public IEnumerator CheckScoreTest() { GameController gameController = (GameController)GameObject.FindObjectOfType(typeof(GameController)); yield return new WaitForSeconds(0.2f); Assert.AreEqual(0, gameController.CalculateScore()); gameController.NextWord(); Assert.AreEqual(5, gameController.CalculateScore()); gameController.NextLetter(true); Assert.AreEqual(6, gameController.CalculateScore()); } [UnityTest] public IEnumerator ActivateGameOverTest() { GameController gameController = (GameController)GameObject.FindObjectOfType(typeof(GameController)); gameController.ActivateGameOver(); yield return new WaitForSeconds(0.2f); GameEndedPanel gameEndedPanel = (GameEndedPanel)GameObject.FindObjectOfType(typeof(GameEndedPanel)); Assert.NotNull(gameEndedPanel); Assert.AreEqual("VERLOREN", gameEndedPanel.endText.text); } [UnityTest] public IEnumerator ActivateWinTests() { GameController gameController = (GameController)GameObject.FindObjectOfType(typeof(GameController)); gameController.ActivateWin(); yield return new WaitForSeconds(0.2f); GameEndedPanel gameEndedPanel = (GameEndedPanel)GameObject.FindObjectOfType(typeof(GameEndedPanel)); Assert.NotNull(gameEndedPanel); Assert.AreEqual("GEWONNEN", gameEndedPanel.endText.text); } [UnityTest] public IEnumerator CheckGameOverTest() { GameController gameController = (GameController)GameObject.FindObjectOfType(typeof(GameController)); gameController.AddSeconds(-60); yield return new WaitForSeconds(0.1f); GameEndedPanel gameEndedPanel = (GameEndedPanel)GameObject.FindObjectOfType(typeof(GameEndedPanel)); Assert.NotNull(gameEndedPanel); Assert.AreEqual("VERLOREN", gameEndedPanel.endText.text); } }