Resolve WES-192 "Fix progress screen"

This commit is contained in:
Dries Van Schuylenbergh
2023-05-04 09:09:49 +00:00
parent 259259ac9c
commit 89f343780a
34 changed files with 4330 additions and 496 deletions

View File

@@ -5,7 +5,6 @@ using System.Linq;
using UnityEditor;
using UnityEngine;
using UnityEngine.TestTools;
using UnityEngine.UI;
/// <summary>
/// Test the UserProgressScreen class
@@ -42,7 +41,7 @@ public class UserProgressScreenTests
/// Cleanup after testing
/// </summary>
[TearDown]
public void TearDown_ChangeUserScreen()
public void TearDown_UserProgressScreen()
{
PersistentDataController.PATH = null;
}
@@ -58,15 +57,10 @@ public class UserProgressScreenTests
var userProgressController = GameObject.FindObjectOfType<UserProgressScreen>();
Assert.IsNotNull(userProgressController.username);
Assert.IsNotNull(userProgressController.avatar);
Assert.IsNotNull(userProgressController.playtime);
Assert.IsNotNull(userProgressController.highscoreMarker);
Assert.IsNotNull(userProgressController.courseCardPrefab);
Assert.IsNotNull(userProgressController.coursesContainer);
Assert.IsNotNull(userProgressController.emptyCourses);
Assert.IsNotNull(userProgressController.minigameCardPrefab);
Assert.IsNotNull(userProgressController.minigamesContainer);
Assert.IsNotNull(userProgressController.emptyMinigames);
Assert.IsNotNull(userProgressController.progressGraph);
Assert.IsNotNull(userProgressController.coursesPanel);
Assert.IsNotNull(userProgressController.coursesTabButton);
Assert.IsNotNull(userProgressController.minigamesPanel);
Assert.IsNotNull(userProgressController.minigamesTabButton);
}
/// <summary>
@@ -82,17 +76,10 @@ public class UserProgressScreenTests
Assert.AreEqual(user.GetUsername(), userProgressController.username.text);
Assert.AreEqual(user.GetAvatar(), userProgressController.avatar.sprite);
Assert.AreEqual($"Totale speeltijd: {user.GetPlaytime().ToString("0.00")}", userProgressController.playtime.text);
Assert.IsFalse(userProgressController.progressGraph.gameObject.activeSelf);
Assert.IsTrue(userProgressController.emptyCourses.gameObject.activeSelf);
Assert.IsFalse(userProgressController.coursesContainer.gameObject.activeSelf);
Assert.IsTrue(userProgressController.coursesPanel.activeSelf);
Assert.Zero(GameObject.FindObjectsOfType<CourseProgressCard>().Length);
Assert.IsTrue(userProgressController.emptyMinigames.gameObject.activeSelf);
Assert.IsFalse(userProgressController.minigamesContainer.gameObject.activeSelf);
Assert.Zero(GameObject.FindObjectsOfType<MinigameProgressCard>().Length);
Assert.IsFalse(userProgressController.minigamesPanel.activeSelf);
}
/// <summary>
@@ -108,87 +95,37 @@ public class UserProgressScreenTests
Assert.AreEqual(user.GetUsername(), userProgressController.username.text);
Assert.AreEqual(user.GetAvatar(), userProgressController.avatar.sprite);
Assert.AreEqual($"Totale speeltijd: {user.GetPlaytime().ToString("0.00")}", userProgressController.playtime.text);
Assert.IsFalse(userProgressController.progressGraph.gameObject.activeSelf);
Assert.IsFalse(userProgressController.emptyCourses.gameObject.activeSelf);
Assert.IsTrue(userProgressController.coursesContainer.gameObject.activeSelf);
Assert.IsTrue(userProgressController.coursesPanel.activeSelf);
var courses = GameObject.FindObjectsOfType<CourseProgressCard>().ToList();
Assert.AreEqual(user.GetCourses().Count, courses.Count);
foreach (var course in courses)
Assert.AreEqual(Color.gray, course.GetComponent<Image>().color);
Assert.IsFalse(userProgressController.emptyMinigames.gameObject.activeSelf);
Assert.IsTrue(userProgressController.minigamesContainer.gameObject.activeSelf);
var minigames = GameObject.FindObjectsOfType<MinigameProgressCard>().ToList();
Assert.AreEqual(user.GetMinigames().Count, minigames.Count);
foreach (var minigame in minigames)
Assert.AreEqual(Color.gray, minigame.GetComponent<Image>().color);
Assert.IsFalse(userProgressController.minigamesPanel.activeSelf);
}
/// <summary>
/// Test whether we can select a course
/// </summary>
[UnityTest]
public IEnumerator Test_UpdateSelection_Course()
public IEnumerator Test_DisplayCourses()
{
yield return Setup_UserProgressScreen();
var userProgressController = GameObject.FindObjectOfType<UserProgressScreen>();
var course = GameObject.FindObjectOfType<CourseProgressCard>();
var minigame = GameObject.FindObjectOfType<MinigameProgressCard>();
Assert.IsFalse(userProgressController.progressGraph.gameObject.activeSelf);
Assert.AreEqual(Color.gray, course.GetComponent<Image>().color);
Assert.AreEqual(Color.gray, minigame.GetComponent<Image>().color);
userProgressController.DisplayCourses();
yield return new WaitForSeconds(WAIT_TIME);
course.selectActivity.Invoke();
Assert.IsFalse(userProgressController.progressGraph.gameObject.activeSelf);
Assert.AreEqual(Color.blue, course.GetComponent<Image>().color);
Assert.AreEqual(Color.gray, minigame.GetComponent<Image>().color);
Assert.IsTrue(userProgressController.coursesPanel.activeSelf);
Assert.IsFalse(userProgressController.minigamesPanel.activeSelf);
}
/// <summary>
/// Test whether we can select a minigame
/// </summary>
[UnityTest]
public IEnumerator Test_UpdateSelection_Minigame()
public IEnumerator Test_DisplayMinigames()
{
yield return Setup_UserProgressScreen();
var userProgressController = GameObject.FindObjectOfType<UserProgressScreen>();
var course = GameObject.FindObjectOfType<CourseProgressCard>();
var minigame = GameObject.FindObjectOfType<MinigameProgressCard>();
Assert.IsFalse(userProgressController.progressGraph.gameObject.activeSelf);
Assert.AreEqual(Color.gray, course.GetComponent<Image>().color);
Assert.AreEqual(Color.gray, minigame.GetComponent<Image>().color);
userProgressController.DisplayMinigames();
yield return new WaitForSeconds(WAIT_TIME);
minigame.selectActivity.Invoke();
Assert.IsTrue(userProgressController.progressGraph.gameObject.activeSelf);
Assert.AreEqual(Color.gray, course.GetComponent<Image>().color);
Assert.AreEqual(Color.blue, minigame.GetComponent<Image>().color);
}
/// <summary>
/// Test whether the course graph is correctly displayed
/// </summary>
/// <remarks>Code is not implemented yet</remarks>
[UnityTest]
public IEnumerator Test_DisplayCourseGraph()
{
// TODO: not implemented yet
yield return null;
}
/// <summary>
/// Test whether the minigame graph is correctly displayed
/// </summary>
/// <remarks>Code is not implemented yet</remarks>
[UnityTest]
public IEnumerator Test_DisplayMinigameGraph()
{
// TODO: not implemented yet
yield return null;
Assert.IsFalse(userProgressController.coursesPanel.activeSelf);
Assert.IsTrue(userProgressController.minigamesPanel.activeSelf);
}
}