Resolve WES-117 "Persistent data handling"
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
using NUnit.Framework;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
/// <summary>
|
||||
@@ -12,20 +12,10 @@ using UnityEngine;
|
||||
public class UserListTest
|
||||
{
|
||||
/// <summary>
|
||||
/// Create a new path so the existing users.json file will not be overwritten
|
||||
/// Create a new path so the existing .json file will not be overwritten
|
||||
/// </summary>
|
||||
private static string PATH = $"{Application.persistentDataPath}/unit_test_users.json";
|
||||
|
||||
/// <summary>
|
||||
/// NUnit test magic (for skipping the setup)
|
||||
/// </summary>
|
||||
public const string SKIP_SETUP = "SKIP_SETUP";
|
||||
|
||||
/// <summary>
|
||||
/// Reference to the userlist to be tested
|
||||
/// </summary>
|
||||
private UserList userList;
|
||||
|
||||
/// <summary>
|
||||
/// Helper variable for quick user creation
|
||||
/// </summary>
|
||||
@@ -34,11 +24,7 @@ public class UserListTest
|
||||
/// <summary>
|
||||
/// Helper variable for quick user creation
|
||||
/// </summary>
|
||||
private Sprite avatar = Sprite.Create(
|
||||
Texture2D.blackTexture,
|
||||
new Rect(0, 0, Texture2D.blackTexture.width, Texture2D.blackTexture.height),
|
||||
new Vector2(0.5f, 0.5f)
|
||||
);
|
||||
private Sprite avatar = null;
|
||||
|
||||
/// <summary>
|
||||
/// Setup the tests
|
||||
@@ -46,27 +32,14 @@ public class UserListTest
|
||||
[SetUp]
|
||||
public void Setup_UserList()
|
||||
{
|
||||
// Check whether the current test needs to skip the setup
|
||||
ArrayList cat = TestContext.CurrentContext.Test.Properties["_CATEGORIES"] as ArrayList;
|
||||
bool skip = cat != null && cat.Contains(SKIP_SETUP);
|
||||
if (!skip)
|
||||
{
|
||||
// The actual setup code
|
||||
UserList.PATH = UserListTest.PATH;
|
||||
userList = ScriptableObject.CreateInstance<UserList>();
|
||||
}
|
||||
}
|
||||
PersistentDataController.PATH = UserListTest.PATH;
|
||||
|
||||
/// <summary>
|
||||
/// Test whether the UserList.PATH is correctly set
|
||||
/// </summary>
|
||||
[Test]
|
||||
[Category(SKIP_SETUP)]
|
||||
public void Test_UserList_OnEnable()
|
||||
{
|
||||
UserList.PATH = null;
|
||||
userList = ScriptableObject.CreateInstance<UserList>();
|
||||
Assert.AreEqual($"{Application.persistentDataPath}/users.json", UserList.PATH);
|
||||
if (File.Exists(PATH))
|
||||
File.Delete(PATH);
|
||||
|
||||
PersistentDataController.GetInstance().Load();
|
||||
AssetDatabase.LoadAssetAtPath<UserAvatarList>("Assets/Accounts/ScriptableObjects/UserAvatarList.asset").Awake();
|
||||
avatar = UserList.AVATARS[0];
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -75,36 +48,22 @@ public class UserListTest
|
||||
[Test]
|
||||
public void Test_New_UserList()
|
||||
{
|
||||
Assert.IsNotNull(userList);
|
||||
Assert.Zero(userList.GetUsers().Count);
|
||||
Assert.Zero(UserList.GetUsers().Count);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test for creation of new user (without adding the user to the list)
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_CreateNewUser()
|
||||
public void Test_UserList_AddUser()
|
||||
{
|
||||
User user = userList.CreateNewUser(username, avatar);
|
||||
Assert.Zero(UserList.GetUsers().Count);
|
||||
User user = UserList.AddUser(username, avatar);
|
||||
|
||||
Assert.IsNotNull(user);
|
||||
Assert.Zero(userList.GetUsers().Count);
|
||||
Assert.AreEqual(username, user.username);
|
||||
Assert.AreEqual(avatar, user.avatar);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test for creating a new user and adding the user to the list
|
||||
/// </summary>
|
||||
public void Test_UserList_CreateAndAddNewUser()
|
||||
{
|
||||
Assert.AreEqual(-1, userList.GetCurrentUserIndex());
|
||||
User user = userList.CreateAndAddNewUser(username, avatar);
|
||||
|
||||
Assert.IsNotNull(user);
|
||||
Assert.AreEqual(1, userList.GetUsers().Count);
|
||||
Assert.AreEqual(user, userList.GetUsers()[0]);
|
||||
Assert.Zero(userList.GetCurrentUserIndex());
|
||||
Assert.AreEqual(1, UserList.GetUsers().Count);
|
||||
Assert.AreEqual(username, user.GetUsername());
|
||||
Assert.AreEqual(avatar, user.GetAvatar());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -113,9 +72,9 @@ public class UserListTest
|
||||
[Test]
|
||||
public void Test_UserList_GetUserByUsername_Valid()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser(username, avatar);
|
||||
User v = userList.GetUserByUsername(username);
|
||||
Assert.AreEqual(u, v);
|
||||
User u = UserList.AddUser(username, avatar);
|
||||
User v = UserList.GetUserByUsername(username);
|
||||
Assert.AreEqual(u.GetUsername(), v.GetUsername());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -124,32 +83,70 @@ public class UserListTest
|
||||
[Test]
|
||||
public void Test_UserList_GetUserByUsername_Null()
|
||||
{
|
||||
User user = userList.GetUserByUsername("not-a-user");
|
||||
User user = UserList.GetUserByUsername("not-a-user");
|
||||
Assert.IsNull(user);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Test whether an existing user can be found by its username
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_GetUserByIndex_Valid()
|
||||
{
|
||||
User u = UserList.AddUser(username, avatar);
|
||||
User v = UserList.GetUserByIndex(0);
|
||||
Assert.AreEqual(u.GetUsername(), v.GetUsername());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a non-existing user can not be found
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_GetUserByIndex_Exception()
|
||||
{
|
||||
Assert.Throws<IndexOutOfRangeException>(delegate { UserList.GetUserByIndex(0); });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a userlist is correctly returned
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_GetUsers()
|
||||
{
|
||||
List<User> u = new List<User>();
|
||||
for (int i = 0; i < 5; i++)
|
||||
u.Add(UserList.AddUser($"{username}_{i}", avatar));
|
||||
|
||||
List<User> v = UserList.GetUsers();
|
||||
Assert.AreEqual(v.Count, u.Count);
|
||||
for (int i = 0; i < 5; i++)
|
||||
Assert.AreEqual(u[i].GetUsername(), v[i].GetUsername());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether the correct current user is returned
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_GetCurrentUser()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateAndAddNewUser($"{username}_{'v'}", avatar);
|
||||
User w = userList.CreateAndAddNewUser($"{username}_{'w'}", avatar);
|
||||
userList.ChangeCurrentUser(2);
|
||||
User u = UserList.AddUser($"{username}_{'u'}", avatar);
|
||||
User v = UserList.AddUser($"{username}_{'v'}", avatar);
|
||||
User w = UserList.AddUser($"{username}_{'w'}", avatar);
|
||||
UserList.ChangeCurrentUser(2);
|
||||
|
||||
User W = userList.GetCurrentUser();
|
||||
Assert.AreEqual(w, W);
|
||||
User W = UserList.GetCurrentUser();
|
||||
Assert.AreEqual(w.GetUsername(), W.GetUsername());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a null user is returned when the userlist is empty
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_GetCurrent_Empty()
|
||||
public void Test_UserList_GetCurrentUser_Empty()
|
||||
{
|
||||
User user = userList.GetCurrentUser();
|
||||
User user = UserList.GetCurrentUser();
|
||||
Assert.IsNull(user);
|
||||
}
|
||||
|
||||
@@ -157,24 +154,30 @@ public class UserListTest
|
||||
/// Test whether the correct index is returned for the current user
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_GetCurrentUserIndex()
|
||||
public void Test_UserList_IndexOf_Valid()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateAndAddNewUser($"{username}_{'v'}", avatar);
|
||||
User w = userList.CreateAndAddNewUser($"{username}_{'w'}", avatar);
|
||||
userList.ChangeCurrentUser(2);
|
||||
User u = UserList.AddUser($"{username}_{'u'}", avatar);
|
||||
User v = UserList.AddUser($"{username}_{'v'}", avatar);
|
||||
User w = UserList.AddUser($"{username}_{'w'}", avatar);
|
||||
UserList.ChangeCurrentUser(2);
|
||||
|
||||
int idx = userList.GetCurrentUserIndex();
|
||||
Assert.AreEqual(2, idx);
|
||||
Assert.AreEqual(0, UserList.IndexOf(u.GetUsername()));
|
||||
Assert.AreEqual(1, UserList.IndexOf(v.GetUsername()));
|
||||
Assert.AreEqual(2, UserList.IndexOf(w.GetUsername()));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a bad index is returned when the userlist is empty
|
||||
/// Test whether the correct index is returned for the current user
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_GetCurrentUserIndex_Empty()
|
||||
public void Test_UserList_IndexOf_Exception()
|
||||
{
|
||||
Assert.AreEqual(-1, userList.GetCurrentUserIndex());
|
||||
User u = new User(new PersistentDataController.SavedUserData()
|
||||
{
|
||||
username = username,
|
||||
avatarIndex = 0
|
||||
});
|
||||
Assert.Throws<KeyNotFoundException>(delegate { UserList.IndexOf(u.GetUsername()); });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -183,13 +186,13 @@ public class UserListTest
|
||||
[Test]
|
||||
public void Test_UserList_ChangeCurrentUser_ValidIndex()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateAndAddNewUser($"{username}_{'v'}", avatar);
|
||||
User w = userList.CreateAndAddNewUser($"{username}_{'w'}", avatar);
|
||||
userList.ChangeCurrentUser(2);
|
||||
User u = UserList.AddUser($"{username}_{'u'}", avatar);
|
||||
User v = UserList.AddUser($"{username}_{'v'}", avatar);
|
||||
User w = UserList.AddUser($"{username}_{'w'}", avatar);
|
||||
UserList.ChangeCurrentUser(2);
|
||||
|
||||
User W = userList.GetCurrentUser();
|
||||
Assert.AreEqual(w, W);
|
||||
User W = UserList.GetCurrentUser();
|
||||
Assert.AreEqual(w.GetUsername(), W.GetUsername());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -198,11 +201,11 @@ public class UserListTest
|
||||
[Test]
|
||||
public void Test_UserList_ChangeCurrentUser_InvalidIndex()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateAndAddNewUser($"{username}_{'v'}", avatar);
|
||||
User w = userList.CreateAndAddNewUser($"{username}_{'w'}", avatar);
|
||||
Assert.Throws<IndexOutOfRangeException>(delegate { userList.ChangeCurrentUser(-1); });
|
||||
Assert.Throws<IndexOutOfRangeException>(delegate { userList.ChangeCurrentUser(5); });
|
||||
User u = UserList.AddUser($"{username}_{'u'}", avatar);
|
||||
User v = UserList.AddUser($"{username}_{'v'}", avatar);
|
||||
User w = UserList.AddUser($"{username}_{'w'}", avatar);
|
||||
Assert.Throws<IndexOutOfRangeException>(delegate { UserList.ChangeCurrentUser(-1); });
|
||||
Assert.Throws<IndexOutOfRangeException>(delegate { UserList.ChangeCurrentUser(5); });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -211,41 +214,45 @@ public class UserListTest
|
||||
[Test]
|
||||
public void Test_UserList_ChangeCurrentUser_IndexEmpty()
|
||||
{
|
||||
Assert.Throws<IndexOutOfRangeException>(delegate { userList.ChangeCurrentUser(0); });
|
||||
Assert.Throws<IndexOutOfRangeException>(delegate { UserList.ChangeCurrentUser(0); });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether the current user is correctly changed
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_ChangeCurrentUser_ValidUser()
|
||||
public void Test_UserList_ChangeCurrentUser_ValidUsername()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateAndAddNewUser($"{username}_{'v'}", avatar);
|
||||
User w = userList.CreateAndAddNewUser($"{username}_{'w'}", avatar);
|
||||
userList.ChangeCurrentUser(v);
|
||||
User V = userList.GetCurrentUser();
|
||||
Assert.AreEqual(v, V);
|
||||
User u = UserList.AddUser($"{username}_{'u'}", avatar);
|
||||
User v = UserList.AddUser($"{username}_{'v'}", avatar);
|
||||
User w = UserList.AddUser($"{username}_{'w'}", avatar);
|
||||
UserList.ChangeCurrentUser(v.GetUsername());
|
||||
User V = UserList.GetCurrentUser();
|
||||
Assert.AreEqual(v.GetUsername(), V.GetUsername());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether the current user is not changed when a non-existing user is given
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_ChangeCurrentUser_InvalidUser()
|
||||
public void Test_UserList_ChangeCurrentUser_InvalidUsername()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateNewUser($"{username}_{'v'}", avatar);
|
||||
Assert.Throws<KeyNotFoundException>(delegate { userList.ChangeCurrentUser(v); });
|
||||
User u = UserList.AddUser($"{username}_{'u'}", avatar);
|
||||
User v = new User(new PersistentDataController.SavedUserData()
|
||||
{
|
||||
username = $"{username}_{'v'}",
|
||||
avatarIndex = 0
|
||||
});
|
||||
Assert.Throws<KeyNotFoundException>(delegate { UserList.ChangeCurrentUser(v.GetUsername()); });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether the current user is not changed when a null user is given
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_ChangeCurrentUser_NullUser()
|
||||
public void Test_UserList_ChangeCurrentUser_NullUsername()
|
||||
{
|
||||
Assert.Throws<KeyNotFoundException>(delegate { userList.ChangeCurrentUser(null); });
|
||||
Assert.Throws<KeyNotFoundException>(delegate { UserList.ChangeCurrentUser(null); });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -254,10 +261,10 @@ public class UserListTest
|
||||
[Test]
|
||||
public void Test_UserList_DeleteUser_ValidIndex()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateAndAddNewUser($"{username}_{'v'}", avatar);
|
||||
User w = userList.CreateAndAddNewUser($"{username}_{'w'}", avatar);
|
||||
Assert.IsTrue(userList.DeleteUser(1));
|
||||
User u = UserList.AddUser($"{username}_{'u'}", avatar);
|
||||
User v = UserList.AddUser($"{username}_{'v'}", avatar);
|
||||
User w = UserList.AddUser($"{username}_{'w'}", avatar);
|
||||
Assert.IsTrue(UserList.DeleteUser(1));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -266,11 +273,11 @@ public class UserListTest
|
||||
[Test]
|
||||
public void Test_UserList_DeleteUser_InValidIndex()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateAndAddNewUser($"{username}_{'v'}", avatar);
|
||||
User w = userList.CreateAndAddNewUser($"{username}_{'w'}", avatar);
|
||||
Assert.IsFalse(userList.DeleteUser(-1));
|
||||
Assert.IsFalse(userList.DeleteUser(5));
|
||||
User u = UserList.AddUser($"{username}_{'u'}", avatar);
|
||||
User v = UserList.AddUser($"{username}_{'v'}", avatar);
|
||||
User w = UserList.AddUser($"{username}_{'w'}", avatar);
|
||||
Assert.Throws<IndexOutOfRangeException>(delegate { UserList.DeleteUser(-1); });
|
||||
Assert.Throws<IndexOutOfRangeException>(delegate { UserList.DeleteUser(5); });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -279,44 +286,61 @@ public class UserListTest
|
||||
[Test]
|
||||
public void Test_UserList_DeleteUser_IndexEmpty()
|
||||
{
|
||||
Assert.IsFalse(userList.DeleteUser(0));
|
||||
Assert.Throws<IndexOutOfRangeException>(delegate { UserList.DeleteUser(0); });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether deleting an existing user will correctly remove the user and set the currentUserIndex correctly
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_DeleteUser_LastValid()
|
||||
public void Test_UserList_DeleteUser_BeforeCurrentUser()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateAndAddNewUser($"{username}_{'v'}", avatar);
|
||||
User w = userList.CreateAndAddNewUser($"{username}_{'w'}", avatar);
|
||||
userList.ChangeCurrentUser(2);
|
||||
User u = UserList.AddUser($"{username}_{'u'}", avatar);
|
||||
User v = UserList.AddUser($"{username}_{'v'}", avatar);
|
||||
User w = UserList.AddUser($"{username}_{'w'}", avatar);
|
||||
UserList.ChangeCurrentUser(1);
|
||||
|
||||
Assert.AreEqual(3, userList.GetUsers().Count);
|
||||
Assert.AreEqual(2, userList.GetCurrentUserIndex());
|
||||
Assert.IsTrue(userList.DeleteUser(w));
|
||||
Assert.AreEqual(2, userList.GetUsers().Count);
|
||||
Assert.AreEqual(1, userList.GetCurrentUserIndex());
|
||||
Assert.AreEqual(3, UserList.GetUsers().Count);
|
||||
Assert.AreEqual(1, UserList.IndexOf(UserList.GetCurrentUser().GetUsername()));
|
||||
Assert.IsTrue(UserList.DeleteUser(u.GetUsername()));
|
||||
Assert.AreEqual(2, UserList.GetUsers().Count);
|
||||
Assert.AreEqual(0, UserList.IndexOf(UserList.GetCurrentUser().GetUsername()));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether deleting an existing user will remove the user correctly
|
||||
/// Test whether deleting an existing user will correctly remove the user and set the currentUserIndex correctly
|
||||
/// </summary>
|
||||
/// <remarks>This will change the currentUserIndex to point to another user</remarks>
|
||||
[Test]
|
||||
public void Test_UserList_DeleteUser_FirstValid()
|
||||
public void Test_UserList_DeleteUser_CurrentUser()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateAndAddNewUser($"{username}_{'v'}", avatar);
|
||||
User w = userList.CreateAndAddNewUser($"{username}_{'w'}", avatar);
|
||||
userList.ChangeCurrentUser(0);
|
||||
User u = UserList.AddUser($"{username}_{'u'}", avatar);
|
||||
User v = UserList.AddUser($"{username}_{'v'}", avatar);
|
||||
User w = UserList.AddUser($"{username}_{'w'}", avatar);
|
||||
UserList.ChangeCurrentUser(1);
|
||||
|
||||
Assert.AreEqual(3, userList.GetUsers().Count);
|
||||
Assert.AreEqual(0, userList.GetCurrentUserIndex());
|
||||
Assert.IsTrue(userList.DeleteUser(u));
|
||||
Assert.AreEqual(2, userList.GetUsers().Count);
|
||||
Assert.AreEqual(0, userList.GetCurrentUserIndex());
|
||||
Assert.AreEqual(3, UserList.GetUsers().Count);
|
||||
Assert.AreEqual(1, UserList.IndexOf(UserList.GetCurrentUser().GetUsername()));
|
||||
Assert.IsTrue(UserList.DeleteUser(v.GetUsername()));
|
||||
Assert.AreEqual(2, UserList.GetUsers().Count);
|
||||
Assert.AreEqual(0, UserList.IndexOf(UserList.GetCurrentUser().GetUsername()));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether deleting an existing user will correctly remove the user and set the currentUserIndex correctly
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_DeleteUser_AfterCurrentUser()
|
||||
{
|
||||
User u = UserList.AddUser($"{username}_{'u'}", avatar);
|
||||
User v = UserList.AddUser($"{username}_{'v'}", avatar);
|
||||
User w = UserList.AddUser($"{username}_{'w'}", avatar);
|
||||
UserList.ChangeCurrentUser(1);
|
||||
|
||||
Assert.AreEqual(3, UserList.GetUsers().Count);
|
||||
Assert.AreEqual(1, UserList.IndexOf(UserList.GetCurrentUser().GetUsername()));
|
||||
Assert.IsTrue(UserList.DeleteUser(w.GetUsername()));
|
||||
Assert.AreEqual(2, UserList.GetUsers().Count);
|
||||
Assert.AreEqual(1, UserList.IndexOf(UserList.GetCurrentUser().GetUsername()));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -325,12 +349,16 @@ public class UserListTest
|
||||
[Test]
|
||||
public void Test_UserList_DeleteUser_Invalid()
|
||||
{
|
||||
User u = userList.CreateAndAddNewUser($"{username}_{'u'}", avatar);
|
||||
User v = userList.CreateNewUser($"{username}_{'v'}", avatar);
|
||||
User u = UserList.AddUser($"{username}_{'u'}", avatar);
|
||||
User v = new User(new PersistentDataController.SavedUserData()
|
||||
{
|
||||
username = $"{username}_{'v'}",
|
||||
avatarIndex = 0
|
||||
});
|
||||
|
||||
Assert.AreEqual(1, userList.GetUsers().Count);
|
||||
Assert.IsFalse(userList.DeleteUser(v));
|
||||
Assert.AreEqual(1, userList.GetUsers().Count);
|
||||
Assert.AreEqual(1, UserList.GetUsers().Count);
|
||||
Assert.Throws<KeyNotFoundException>(delegate { UserList.DeleteUser(v.GetUsername()); });
|
||||
Assert.AreEqual(1, UserList.GetUsers().Count);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -339,10 +367,14 @@ public class UserListTest
|
||||
[Test]
|
||||
public void Test_UserList_DeleteUser_Empty()
|
||||
{
|
||||
User user = userList.CreateNewUser(username, avatar);
|
||||
Assert.Zero(userList.GetUsers().Count);
|
||||
Assert.IsFalse(userList.DeleteUser(user));
|
||||
Assert.Zero(userList.GetUsers().Count);
|
||||
User user = new User(new PersistentDataController.SavedUserData()
|
||||
{
|
||||
username = username,
|
||||
avatarIndex = 0
|
||||
});
|
||||
Assert.Zero(UserList.GetUsers().Count);
|
||||
Assert.Throws<KeyNotFoundException>(delegate { UserList.DeleteUser(user.GetUsername()); });
|
||||
Assert.Zero(UserList.GetUsers().Count);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -351,23 +383,16 @@ public class UserListTest
|
||||
[Test]
|
||||
public void Test_UserList_Save_New()
|
||||
{
|
||||
if (File.Exists(PATH))
|
||||
{
|
||||
File.Delete(PATH);
|
||||
}
|
||||
|
||||
List<User> u = new List<User>();
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
u.Add(userList.CreateAndAddNewUser($"{username}_{i}", avatar));
|
||||
}
|
||||
userList.ChangeCurrentUser(3);
|
||||
userList.Save();
|
||||
u.Add(UserList.AddUser($"{username}_{i}", avatar));
|
||||
|
||||
UserList.ChangeCurrentUser(3);
|
||||
UserList.Save();
|
||||
FileAssert.Exists(PATH);
|
||||
|
||||
string content = File.ReadAllText(PATH);
|
||||
int id = avatar.GetInstanceID();
|
||||
string expected = $"{{\"currentUserIndex\":3,\"storedUsers\":[{{\"username\":\"u5erNam3_0\",\"avatar\":{{\"instanceID\":{id}}},\"playtime\":0.0,\"courses\":[],\"minigames\":[]}},{{\"username\":\"u5erNam3_1\",\"avatar\":{{\"instanceID\":{id}}},\"playtime\":0.0,\"courses\":[],\"minigames\":[]}},{{\"username\":\"u5erNam3_2\",\"avatar\":{{\"instanceID\":{id}}},\"playtime\":0.0,\"courses\":[],\"minigames\":[]}},{{\"username\":\"u5erNam3_3\",\"avatar\":{{\"instanceID\":{id}}},\"playtime\":0.0,\"courses\":[],\"minigames\":[]}},{{\"username\":\"u5erNam3_4\",\"avatar\":{{\"instanceID\":{id}}},\"playtime\":0.0,\"courses\":[],\"minigames\":[]}}]}}";
|
||||
string expected = $"{{\"version\":{PersistentDataController.VERSION},\"users\":[{{\"entries\":[],\"username\":\"u5erNam3_0\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_1\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_2\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_3\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_4\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}}],\"currentUser\":3,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0}}";
|
||||
Assert.AreEqual(expected, content);
|
||||
}
|
||||
|
||||
@@ -385,16 +410,14 @@ public class UserListTest
|
||||
|
||||
List<User> u = new List<User>();
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
u.Add(userList.CreateAndAddNewUser($"{username}_{i}", avatar));
|
||||
}
|
||||
userList.ChangeCurrentUser(3);
|
||||
userList.Save();
|
||||
u.Add(UserList.AddUser($"{username}_{i}", avatar));
|
||||
|
||||
UserList.ChangeCurrentUser(3);
|
||||
UserList.Save();
|
||||
FileAssert.Exists(PATH);
|
||||
|
||||
string content = File.ReadAllText(PATH);
|
||||
int id = avatar.GetInstanceID();
|
||||
string expected = $"{{\"currentUserIndex\":3,\"storedUsers\":[{{\"username\":\"u5erNam3_0\",\"avatar\":{{\"instanceID\":{id}}},\"playtime\":0.0,\"courses\":[],\"minigames\":[]}},{{\"username\":\"u5erNam3_1\",\"avatar\":{{\"instanceID\":{id}}},\"playtime\":0.0,\"courses\":[],\"minigames\":[]}},{{\"username\":\"u5erNam3_2\",\"avatar\":{{\"instanceID\":{id}}},\"playtime\":0.0,\"courses\":[],\"minigames\":[]}},{{\"username\":\"u5erNam3_3\",\"avatar\":{{\"instanceID\":{id}}},\"playtime\":0.0,\"courses\":[],\"minigames\":[]}},{{\"username\":\"u5erNam3_4\",\"avatar\":{{\"instanceID\":{id}}},\"playtime\":0.0,\"courses\":[],\"minigames\":[]}}]}}";
|
||||
string expected = $"{{\"version\":{PersistentDataController.VERSION},\"users\":[{{\"entries\":[],\"username\":\"u5erNam3_0\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_1\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_2\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_3\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}},{{\"entries\":[],\"username\":\"u5erNam3_4\",\"avatarIndex\":0,\"playtime\":0.0,\"minigames\":[],\"courses\":[]}}],\"currentUser\":3,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0}}";
|
||||
Assert.AreEqual(expected, content);
|
||||
}
|
||||
|
||||
@@ -404,67 +427,11 @@ public class UserListTest
|
||||
[Test]
|
||||
public void Test_UserList_Save_Empty()
|
||||
{
|
||||
userList.Save();
|
||||
UserList.Save();
|
||||
FileAssert.Exists(PATH);
|
||||
|
||||
string content = File.ReadAllText(PATH);
|
||||
string expected = "{\"currentUserIndex\":-1,\"storedUsers\":[]}";
|
||||
string expected = $"{{\"version\":{PersistentDataController.VERSION},\"users\":[],\"currentUser\":-1,\"currentMinigame\":0,\"currentCourse\":0,\"currentTheme\":0}}";
|
||||
Assert.AreEqual(expected, content);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether a userlist (containing some users) is correrctly loaded
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_Load()
|
||||
{
|
||||
List<User> u = new List<User>();
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
u.Add(userList.CreateAndAddNewUser($"{username}_{i}", avatar));
|
||||
}
|
||||
userList.ChangeCurrentUser(3);
|
||||
userList.Save();
|
||||
|
||||
userList.Load();
|
||||
Assert.AreEqual(userList.GetUsers().Count, u.Count);
|
||||
Assert.AreEqual(userList.GetCurrentUserIndex(), 3);
|
||||
List<User> v = userList.GetUsers();
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
Assert.AreEqual(u[i].username, v[i].username);
|
||||
Assert.AreEqual(u[i].avatar, v[i].avatar);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test whether an empty userlist is correctly loaded
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_Load_Empty()
|
||||
{
|
||||
userList.Save();
|
||||
userList.Load();
|
||||
Assert.Zero(userList.GetUsers().Count);
|
||||
Assert.AreEqual(-1, userList.GetCurrentUserIndex());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test if the user save file is not found, a new one will be created and an empty userlist will be loaded
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void Test_UserList_Load_NotFound()
|
||||
{
|
||||
List<User> u = new List<User>();
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
u.Add(userList.CreateAndAddNewUser($"{username}_{i}", avatar));
|
||||
}
|
||||
userList.ChangeCurrentUser(3);
|
||||
userList.Save();
|
||||
|
||||
File.Delete(PATH);
|
||||
userList.Load();
|
||||
Assert.Zero(userList.GetUsers().Count);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user