Files
unity-application/Assets/SpellingBee/PlayModeTests/GameControllerTests.cs
2023-03-25 22:47:25 +00:00

79 lines
2.7 KiB
C#

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);
}
}