From 55a4f3da5c634f4e1c5f060de9ea84ebe7b334ac Mon Sep 17 00:00:00 2001 From: "matheo.thierry" Date: Fri, 19 May 2023 11:05:33 +0200 Subject: [PATCH] ADD unitTest for Database and fix class missing methodes --- notus/Biblioteque_de_Class/Logo.cs | 3 ++ notus/Biblioteque_de_Class/Manager.cs | 12 ----- notus/Biblioteque_de_Class/Note.cs | 6 +-- notus/Biblioteque_de_Class/NoteImage.cs | 4 ++ notus/Biblioteque_de_Class/Tags.cs | 2 + notus/Biblioteque_de_Class/User.cs | 5 ++ notus/Notus_Console/Manager.cs | 18 +++++++ notus/Notus_Persistence/Manager.cs | 14 +++++ notus/Notus_Persistence/Stub.cs | 2 +- .../Notus_UnitTest_Database/AddThemeTests.cs | 39 ++++++++++++++ .../Notus_UnitTest_Database/AddUserTests.cs | 51 +++++++++++++++++++ .../ComparePasswordTests.cs | 42 +++++++++++++++ .../Notus_UnitTest_Database/FindMailTests.cs | 39 ++++++++++++++ .../GetLogoLinkTests.cs | 30 ++++------- .../Notus_UnitTest_Database/GetThemeTests.cs | 36 +++++++++++++ .../Notus_UnitTest_Database/GetUserTests.cs | 36 +++++++++++++ .../ModifyThemeColorListTests.cs | 43 ++++++++++++++++ .../ModifyThemeNameTests.cs | 36 +++++++++++++ .../Notus_UnitTest_Database.csproj | 4 ++ .../RemoveUserTests.cs | 38 ++++++++++++++ .../SearchUserTests.cs | 38 +++++++------- notus/notus.sln | 10 ++-- 22 files changed, 449 insertions(+), 59 deletions(-) delete mode 100644 notus/Biblioteque_de_Class/Manager.cs create mode 100644 notus/Notus_Console/Manager.cs create mode 100644 notus/Notus_Persistence/Manager.cs create mode 100644 notus/Tests/Notus_UnitTest_Database/AddThemeTests.cs create mode 100644 notus/Tests/Notus_UnitTest_Database/AddUserTests.cs create mode 100644 notus/Tests/Notus_UnitTest_Database/ComparePasswordTests.cs create mode 100644 notus/Tests/Notus_UnitTest_Database/FindMailTests.cs create mode 100644 notus/Tests/Notus_UnitTest_Database/GetThemeTests.cs create mode 100644 notus/Tests/Notus_UnitTest_Database/GetUserTests.cs create mode 100644 notus/Tests/Notus_UnitTest_Database/ModifyThemeColorListTests.cs create mode 100644 notus/Tests/Notus_UnitTest_Database/ModifyThemeNameTests.cs create mode 100644 notus/Tests/Notus_UnitTest_Database/RemoveUserTests.cs diff --git a/notus/Biblioteque_de_Class/Logo.cs b/notus/Biblioteque_de_Class/Logo.cs index 4fdb203..7baf505 100644 --- a/notus/Biblioteque_de_Class/Logo.cs +++ b/notus/Biblioteque_de_Class/Logo.cs @@ -20,6 +20,9 @@ namespace Biblioteque_de_Class public string GetName() { return Name; } public string GetLogoLink() { return LogoLink; } + public void SetName(string name) { Name = name; } + public void SetLogoLink(string logoLink) { LogoLink = logoLink; } + public override string ToString() => $"Logo -> Name: {Name}\nLink: {LogoLink}"; } } diff --git a/notus/Biblioteque_de_Class/Manager.cs b/notus/Biblioteque_de_Class/Manager.cs deleted file mode 100644 index 64c3eed..0000000 --- a/notus/Biblioteque_de_Class/Manager.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Biblioteque_de_Class -{ - public class Manager - { - } -} diff --git a/notus/Biblioteque_de_Class/Note.cs b/notus/Biblioteque_de_Class/Note.cs index c33f949..f8724a9 100644 --- a/notus/Biblioteque_de_Class/Note.cs +++ b/notus/Biblioteque_de_Class/Note.cs @@ -55,9 +55,9 @@ namespace Biblioteque_de_Class public override string ToString() => $"Note -> Name: {Name}\nLogoPath: {LogoPath}\nNumber of lines: {TextLineList.Count()}"; - public void ModifyName(string name) { Name = name; } - public void ModifyLogoPath(string logoPath) { LogoPath = logoPath; } - public void ModifyModificationDate() { ModificationDate = DateOnly.FromDateTime(DateTime.Now); } + public void SetName(string name) { Name = name; } + public void SetLogoPath(string logoPath) { LogoPath = logoPath; } + public void SetModificationDate() { ModificationDate = DateOnly.FromDateTime(DateTime.Now); } /// /// vérifier si l'utilisateur est le propriétaire de la note diff --git a/notus/Biblioteque_de_Class/NoteImage.cs b/notus/Biblioteque_de_Class/NoteImage.cs index db6f85d..c141096 100644 --- a/notus/Biblioteque_de_Class/NoteImage.cs +++ b/notus/Biblioteque_de_Class/NoteImage.cs @@ -23,6 +23,10 @@ namespace Biblioteque_de_Class public string GetImageLink() { return ImageLink; } public string GetPosition() { return Position; } + public void SetName(string name) { Name = name; } + public void SetImageLink(string imageLink) { ImageLink = imageLink; } + public void SetPosition(string position) { Position = position; } + public override string ToString() => $"image -> name: {Name}\nlink: {ImageLink}"; } } diff --git a/notus/Biblioteque_de_Class/Tags.cs b/notus/Biblioteque_de_Class/Tags.cs index bf0181d..dbba2b4 100644 --- a/notus/Biblioteque_de_Class/Tags.cs +++ b/notus/Biblioteque_de_Class/Tags.cs @@ -19,6 +19,8 @@ namespace Biblioteque_de_Class public string GetName() { return Name; } public string GetColor() { return Color; } + public void SetName(string name) { Name = name; } + public void SetColor(string color) { Color = color; } public override string ToString() => $"tag -> name: {Name}\ncolor: {Color}"; } diff --git a/notus/Biblioteque_de_Class/User.cs b/notus/Biblioteque_de_Class/User.cs index c602590..ac9627d 100644 --- a/notus/Biblioteque_de_Class/User.cs +++ b/notus/Biblioteque_de_Class/User.cs @@ -45,6 +45,11 @@ namespace Biblioteque_de_Class public bool GetIsConnected() { return IsConnected; } public Dictionary> GetNoteTagged() { return NoteTagged; } + public void SetUsername(string username) { Username = username; } + public void SetEmail(string email) { Email = email; } + public void SetPassword(string password) { Password = password; } + public void SetIsConnected(bool isConnected) { IsConnected = isConnected; } + public override string ToString() => $"username: {Username}\nemail: {Email}\npassword: {Password}\nOwned notes: {NoteList.Count}"; /// diff --git a/notus/Notus_Console/Manager.cs b/notus/Notus_Console/Manager.cs new file mode 100644 index 0000000..ad95038 --- /dev/null +++ b/notus/Notus_Console/Manager.cs @@ -0,0 +1,18 @@ +using Notus_Persistance; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Notus_Console +{ + public class Manager + { + PersistenceManager pers { get; set; } + public Manager(PersistenceManager pers) + { + this.pers = pers; + } + } +} diff --git a/notus/Notus_Persistence/Manager.cs b/notus/Notus_Persistence/Manager.cs new file mode 100644 index 0000000..291cf69 --- /dev/null +++ b/notus/Notus_Persistence/Manager.cs @@ -0,0 +1,14 @@ +using Biblioteque_de_Class; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Notus_Persistance +{ + public class Manager : PersistenceManager + { + PersistenceManager pers { get; set; } + } +} diff --git a/notus/Notus_Persistence/Stub.cs b/notus/Notus_Persistence/Stub.cs index 8056488..c00b816 100644 --- a/notus/Notus_Persistence/Stub.cs +++ b/notus/Notus_Persistence/Stub.cs @@ -8,7 +8,7 @@ using System.Threading.Tasks; namespace Notus_Persistance { - internal class Stub + public class Stub { public static void SaveDatabaseData(Database database) { diff --git a/notus/Tests/Notus_UnitTest_Database/AddThemeTests.cs b/notus/Tests/Notus_UnitTest_Database/AddThemeTests.cs new file mode 100644 index 0000000..339eddb --- /dev/null +++ b/notus/Tests/Notus_UnitTest_Database/AddThemeTests.cs @@ -0,0 +1,39 @@ +using Biblioteque_de_Class; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Threading.Tasks; + +namespace Notus_UnitTest_Database +{ + public class AddThemeTests + { + private Database database; + + [SetUp] + public void Setup() + { + database = new Database(); + } + + [Test] + public void AddTheme_NewTheme_ThemeAddedToList() + { + List listcolor = new List() { "Blue", "Dark", "Grey" }; + Theme theme = new Theme("ocean", listcolor); + database.AddTheme(theme); + CollectionAssert.Contains(database.GetThemeList(), theme); + } + + [Test] + public void AddTheme_ExistingTheme_ThrowsException() + { + List listcolor = new(); + Theme theme = new Theme("ocean", listcolor); + database.GetThemeList().Add(theme); + Assert.Throws(() => database.AddTheme(theme), "Theme already used."); + } + } +} diff --git a/notus/Tests/Notus_UnitTest_Database/AddUserTests.cs b/notus/Tests/Notus_UnitTest_Database/AddUserTests.cs new file mode 100644 index 0000000..e5fc44b --- /dev/null +++ b/notus/Tests/Notus_UnitTest_Database/AddUserTests.cs @@ -0,0 +1,51 @@ +using Biblioteque_de_Class; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Notus_UnitTest_Database +{ + public class AddUserTests + { + private Database database; + + [SetUp] + public void Setup() + { + database = new Database(); + } + + [Test] + public void AddUser_ValidUser_UserAddedToList() + { + User user = new User("John", "rien", "choco") ; + user.SetEmail("john@example.com"); + database.AddUser(user); + CollectionAssert.Contains(database.GetUserList(), user); + } + + [Test] + public void AddUser_DuplicateUsername_ThrowsException() + { + User existingUser = new User("John1", "rien", "choco"); + existingUser.SetEmail("john1@example.com"); + database.GetUserList().Add(existingUser); + User newUser = new User("John1", "rien", "choco"); + newUser.SetEmail("Jane@example.com"); + Assert.Throws(() => database.AddUser(newUser), "Username already used."); + } + + [Test] + public void AddUser_DuplicateEmail_ThrowsException() + { + User existingUser = new User("John2", "rien", "choco"); + existingUser.SetEmail("john2@example.com"); + database.GetUserList().Add(existingUser); + User newUser = new User("Jane", "rien", "choco"); + newUser.SetEmail("john2@example.com"); + Assert.Throws(() => database.AddUser(newUser), "Email already used."); + } + } +} diff --git a/notus/Tests/Notus_UnitTest_Database/ComparePasswordTests.cs b/notus/Tests/Notus_UnitTest_Database/ComparePasswordTests.cs new file mode 100644 index 0000000..7f02e56 --- /dev/null +++ b/notus/Tests/Notus_UnitTest_Database/ComparePasswordTests.cs @@ -0,0 +1,42 @@ +using Biblioteque_de_Class; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Notus_UnitTest_Database +{ + [TestFixture] + public class ComparePasswordTests + { + private Database database; + + [SetUp] + public void Setup() + { + database = new Database(); + User user = new User("John","rien","choco"); + user.SetPassword("password123"); + database.GetUserList().Add(user); + } + + [Test] + public void ComparePassword_CorrectPassword_ReturnsTrue() + { + User user = database.GetUserList()[0]; + string password = "password123"; + bool result = database.ComparePassword(user, password); + Assert.IsTrue(result); + } + + [Test] + public void ComparePassword_IncorrectPassword_ReturnsFalse() + { + User user = database.GetUserList()[0]; + string password = "incorrectPassword"; + bool result = database.ComparePassword(user, password); + Assert.IsFalse(result); + } + } +} diff --git a/notus/Tests/Notus_UnitTest_Database/FindMailTests.cs b/notus/Tests/Notus_UnitTest_Database/FindMailTests.cs new file mode 100644 index 0000000..8639be1 --- /dev/null +++ b/notus/Tests/Notus_UnitTest_Database/FindMailTests.cs @@ -0,0 +1,39 @@ +using Biblioteque_de_Class; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Notus_UnitTest_Database +{ + public class FindMailTests + { + private Database database; + + [SetUp] + public void Setup() + { + database = new Database(); + User user = new User("John"); + user.SetEmail("john@example.com"); + database.GetUserList().Add(user); + } + + [Test] + public void FindEmail_ExistingEmail_ReturnsTrue() + { + string email = "john@example.com"; + bool result = database.FindEmail(email); + Assert.IsTrue(result); + } + + [Test] + public void FindEmail_NonExistingEmail_ReturnsFalse() + { + string email = "jane@example.com"; + bool result = database.FindEmail(email); + Assert.IsFalse(result); + } + } +} diff --git a/notus/Tests/Notus_UnitTest_Database/GetLogoLinkTests.cs b/notus/Tests/Notus_UnitTest_Database/GetLogoLinkTests.cs index 2ecf99d..1b65d38 100644 --- a/notus/Tests/Notus_UnitTest_Database/GetLogoLinkTests.cs +++ b/notus/Tests/Notus_UnitTest_Database/GetLogoLinkTests.cs @@ -3,7 +3,7 @@ using Biblioteque_de_Class; namespace Notus_UnitTest_Database { [TestFixture] - public class GetLogoLinkTests + public class GetLogoLinksTests { private Database database; @@ -11,32 +11,24 @@ namespace Notus_UnitTest_Database public void Setup() { database = new Database(); + database.GetDefaultLogoList().Add(new Logo("Logo1", "link1")); + database.GetDefaultLogoList().Add(new Logo("Logo2", "link2")); + database.GetDefaultLogoList().Add(new Logo("Logo3", "link3")); } - // ... Existing tests for other methods ... - - // GetLogoLink [Test] - public void GetLogoLink_ExistingLogoName_ReturnsLogoLink() + public void GetLogoLink_LogoExists_ReturnsLogoLink() { - // Arrange - Logo logo1 = new Logo("Logo1", "logo1.png"); - Logo logo2 = new Logo("Logo2", "logo2.png"); - database.GetDefaultLogoList().Add(logo1); - database.GetDefaultLogoList().Add(logo2); - - // Act - string result = database.GetLogoLink("Logo1"); - - // Assert - Assert.AreEqual("logo1.png", result); + string logoName = "Logo2"; + string logoLink = database.GetLogoLink(logoName); + Assert.That(logoLink, Is.EqualTo("link2")); } [Test] - public void GetLogoLink_NonExistingLogoName_ThrowsException() + public void GetLogoLink_LogoDoesNotExist_ThrowsException() { - // Act & Assert - Assert.Throws(() => database.GetLogoLink("Logo3")); + string logoName = "Logo4"; + Assert.Throws(() => database.GetLogoLink(logoName)); } } } \ No newline at end of file diff --git a/notus/Tests/Notus_UnitTest_Database/GetThemeTests.cs b/notus/Tests/Notus_UnitTest_Database/GetThemeTests.cs new file mode 100644 index 0000000..1786528 --- /dev/null +++ b/notus/Tests/Notus_UnitTest_Database/GetThemeTests.cs @@ -0,0 +1,36 @@ +using Biblioteque_de_Class; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Notus_UnitTest_Database +{ + public class GetThemeTests + { + private Database database; + + [SetUp] + public void Setup() + { + database = new Database(); + } + + [Test] + public void GetTheme_ExistingTheme_ReturnsTheme() + { + List listcolor = new List() { "Blue", "Dark", "Grey" }; + Theme theme = new Theme("ocean", listcolor); + database.GetThemeList().Add(theme); + Theme retrievedTheme = database.GetTheme("Dark"); + Assert.That(retrievedTheme, Is.EqualTo(theme)); + } + + [Test] + public void GetTheme_NonExistingTheme_ThrowsException() + { + Assert.Throws(() => database.GetTheme("NonExistingTheme"), "No theme found with this name."); + } + } +} diff --git a/notus/Tests/Notus_UnitTest_Database/GetUserTests.cs b/notus/Tests/Notus_UnitTest_Database/GetUserTests.cs new file mode 100644 index 0000000..d06ea0b --- /dev/null +++ b/notus/Tests/Notus_UnitTest_Database/GetUserTests.cs @@ -0,0 +1,36 @@ +using Biblioteque_de_Class; + +namespace Notus_UnitTest_Database +{ + + [TestFixture] + public class GetUserTests + { + private Database database; + + [SetUp] + public void Setup() + { + database = new Database(); + database.GetUserList().Add(new User("John","rien","choco")); + database.GetUserList().Add(new User("Alice", "rien", "choco")); + database.GetUserList().Add(new User("Bob", "rien", "choco")); + } + + [Test] + public void GetUser_UserExists_ReturnsUser() + { + string userName = "Alice"; + User user = database.GetUser(userName); + Assert.IsNotNull(user); + Assert.That(user.GetUsername(), Is.EqualTo(userName)); + } + + [Test] + public void GetUser_UserDoesNotExist_ThrowsException() + { + string userName = "Eve"; + Assert.Throws(() => database.GetUser(userName)); + } + } +} diff --git a/notus/Tests/Notus_UnitTest_Database/ModifyThemeColorListTests.cs b/notus/Tests/Notus_UnitTest_Database/ModifyThemeColorListTests.cs new file mode 100644 index 0000000..96c1d4a --- /dev/null +++ b/notus/Tests/Notus_UnitTest_Database/ModifyThemeColorListTests.cs @@ -0,0 +1,43 @@ +using Biblioteque_de_Class; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Notus_UnitTest_Database +{ + public class ModifyThemeColorListTests + { + private Database database; + + [SetUp] + public void Setup() + { + database = new Database(); + } + + [Test] + public void ModifyThemeColorList_ExistingTheme_ModifiesColors() + { + List listcolor = new List() { "Blue", "Dark", "Grey" }; + Theme theme = new Theme("ocean", listcolor); + database.GetThemeList().Add(theme); + List newColorList = new List { "Red", "Green", "Blue" }; + database.ModifyThemeColorList(theme, newColorList); + Assert.That(theme.GetColor(0), Is.EqualTo(newColorList[0])); + Assert.That(theme.GetColor(1), Is.EqualTo(newColorList[1])); + Assert.That(theme.GetColor(2), Is.EqualTo(newColorList[2])); + } + + [Test] + public void ModifyThemeColorList_NonExistingTheme_ThrowsException() + { + List listcolor = new List() { "Blue", "Dark", "Grey" }; + Theme theme = new Theme("ocean", listcolor); + // no add :) + List newColorList = new List { "Red", "Green", "Blue" }; + Assert.Throws(() => database.ModifyThemeColorList(theme, newColorList), "Theme not found."); + } + } +} diff --git a/notus/Tests/Notus_UnitTest_Database/ModifyThemeNameTests.cs b/notus/Tests/Notus_UnitTest_Database/ModifyThemeNameTests.cs new file mode 100644 index 0000000..4f57537 --- /dev/null +++ b/notus/Tests/Notus_UnitTest_Database/ModifyThemeNameTests.cs @@ -0,0 +1,36 @@ +using Biblioteque_de_Class; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Notus_UnitTest_Database +{ + public class ModifyThemeNameTests + { + private Database database; + + [SetUp] + public void Setup() + { + database = new Database(); + } + + [Test] + public void GetTheme_ExistingTheme_ReturnsTheme() + { + List listcolor = new List() { "Blue", "Dark", "Grey" }; + Theme theme = new Theme("ocean", listcolor); + database.GetThemeList().Add(theme); + Theme retrievedTheme = database.GetTheme("Dark"); + Assert.That(retrievedTheme, Is.EqualTo(theme)); + } + + [Test] + public void GetTheme_NonExistingTheme_ThrowsException() + { + Assert.Throws(() => database.GetTheme("NonExistingTheme"), "No theme found with this name."); + } + } +} diff --git a/notus/Tests/Notus_UnitTest_Database/Notus_UnitTest_Database.csproj b/notus/Tests/Notus_UnitTest_Database/Notus_UnitTest_Database.csproj index 8d82d90..3f9f74f 100644 --- a/notus/Tests/Notus_UnitTest_Database/Notus_UnitTest_Database.csproj +++ b/notus/Tests/Notus_UnitTest_Database/Notus_UnitTest_Database.csproj @@ -17,4 +17,8 @@ + + + + diff --git a/notus/Tests/Notus_UnitTest_Database/RemoveUserTests.cs b/notus/Tests/Notus_UnitTest_Database/RemoveUserTests.cs new file mode 100644 index 0000000..abec9e5 --- /dev/null +++ b/notus/Tests/Notus_UnitTest_Database/RemoveUserTests.cs @@ -0,0 +1,38 @@ +using Biblioteque_de_Class; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Notus_UnitTest_Database +{ + public class RemoveUserTests + { + private Database database; + + [SetUp] + public void Setup() + { + database = new Database(); + } + + [Test] + public void RemoveUser_ExistingUser_UserRemovedFromList() + { + User user = new User("John","rien","choco"); + user.SetEmail("john@example.com"); + database.GetUserList().Add(user); + database.RemoveUser(user); + CollectionAssert.DoesNotContain(database.GetUserList(), user); + } + + [Test] + public void RemoveUser_NonExistingUser_ThrowsException() + { + User user = new User("John", "rien", "choco"); + user.SetEmail("john@example.com"); + Assert.Throws(() => database.RemoveUser(user), "User not found."); + } + } +} diff --git a/notus/Tests/Notus_UnitTest_Database/SearchUserTests.cs b/notus/Tests/Notus_UnitTest_Database/SearchUserTests.cs index 06799b7..3c25715 100644 --- a/notus/Tests/Notus_UnitTest_Database/SearchUserTests.cs +++ b/notus/Tests/Notus_UnitTest_Database/SearchUserTests.cs @@ -1,24 +1,16 @@ using Biblioteque_de_Class; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace Notus_UnitTest_Database { [TestFixture] - public class DatabaseTests + public class SearchUserTests { private Database database; [SetUp] public void Setup() { - // Create an instance of the Database class database = new Database(); - - // Add some dummy users for testing database.GetUserList().Add(new User("John", "john@example.com", "choco")); database.GetUserList().Add(new User("Jane", "jane@example.com", "choco")); database.GetUserList().Add(new User("Alice", "alice@example.com", "choco")); @@ -27,13 +19,8 @@ namespace Notus_UnitTest_Database [Test] public void SearchUser_UserExists_ReturnsMatchingUsers() { - // Arrange string searchName = "Jo"; - - // Act List searchedUsers = database.SearchUser(searchName); - - // Assert Assert.That(searchedUsers.Count, Is.EqualTo(1)); Assert.That(searchedUsers[0].GetUsername(), Is.EqualTo("John")); } @@ -41,14 +28,27 @@ namespace Notus_UnitTest_Database [Test] public void SearchUser_UserDoesNotExist_ReturnsEmptyList() { - // Arrange string searchName = "Bob"; + List searchedUsers = database.SearchUser(searchName); + Assert.IsEmpty(searchedUsers); + } - // Act + [Test] + public void SearchUser_CaseInsensitiveSearch_ReturnsMatchingUsers() + { + string searchName = "ALICE"; List searchedUsers = database.SearchUser(searchName); + Assert.That(searchedUsers.Count, Is.EqualTo(1)); + Assert.That(searchedUsers[0].GetUsername(), Is.EqualTo("Alice")); + } - // Assert - Assert.IsEmpty(searchedUsers); + [Test] + public void SearchUser_PartialMatch_ReturnsMatchingUsers() + { + string searchName = "ane"; + List searchedUsers = database.SearchUser(searchName); + Assert.That(searchedUsers.Count, Is.EqualTo(1)); + Assert.That(searchedUsers[0].GetUsername(), Is.EqualTo("Jane")); } } -} +} \ No newline at end of file diff --git a/notus/notus.sln b/notus/notus.sln index 7c16614..6c35a63 100644 --- a/notus/notus.sln +++ b/notus/notus.sln @@ -11,7 +11,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Notus_Console", "Notus_Cons EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Notus_Persistance", "Notus_Persistence\Notus_Persistance.csproj", "{184478A9-E14F-42E0-B963-B3A4474C9C1C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Notus_UnitTest", "Notus_UnitTest\Notus_UnitTest.csproj", "{8DCE500B-E01F-44CA-933E-DDE95111899B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Notus_UnitTest_Database", "Tests\Notus_UnitTest_Database\Notus_UnitTest_Database.csproj", "{EE443C17-B31D-4AD0-9141-920876E7DF79}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -37,10 +37,10 @@ Global {184478A9-E14F-42E0-B963-B3A4474C9C1C}.Debug|Any CPU.Build.0 = Debug|Any CPU {184478A9-E14F-42E0-B963-B3A4474C9C1C}.Release|Any CPU.ActiveCfg = Release|Any CPU {184478A9-E14F-42E0-B963-B3A4474C9C1C}.Release|Any CPU.Build.0 = Release|Any CPU - {8DCE500B-E01F-44CA-933E-DDE95111899B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8DCE500B-E01F-44CA-933E-DDE95111899B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8DCE500B-E01F-44CA-933E-DDE95111899B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8DCE500B-E01F-44CA-933E-DDE95111899B}.Release|Any CPU.Build.0 = Release|Any CPU + {EE443C17-B31D-4AD0-9141-920876E7DF79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EE443C17-B31D-4AD0-9141-920876E7DF79}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EE443C17-B31D-4AD0-9141-920876E7DF79}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EE443C17-B31D-4AD0-9141-920876E7DF79}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE