diff --git a/notus/Biblioteque_de_Class/Database.cs b/notus/Biblioteque_de_Class/Database.cs index ce2e31d..4df58a9 100644 --- a/notus/Biblioteque_de_Class/Database.cs +++ b/notus/Biblioteque_de_Class/Database.cs @@ -135,7 +135,7 @@ namespace Biblioteque_de_Class { if (existingTheme.Name == theme.Name) { - throw new AlreadyUsedException("Theme already used."); + throw new AlreadyExistException("Theme already Existing."); } } ThemeList.Add(theme); diff --git a/notus/Biblioteque_de_Class/User.cs b/notus/Biblioteque_de_Class/User.cs index 2f71861..52032d1 100644 --- a/notus/Biblioteque_de_Class/User.cs +++ b/notus/Biblioteque_de_Class/User.cs @@ -108,7 +108,7 @@ namespace Biblioteque_de_Class string search = name.ToLower(); foreach (Note note in ToResearchIntoList) { - if (note.Name.ToLower().Contains(search) && note.CreationDate >= FirstDate && note.CreationDate <= SecondeDate || note.ModificationDate >= FirstDate && note.ModificationDate <= SecondeDate) + if (note.Name.ToLower().Contains(search) && note.CreationDate >= FirstDate && note.CreationDate <= SecondeDate || note.Name.ToLower().Contains(search) && note.ModificationDate >= FirstDate && note.ModificationDate <= SecondeDate) { searchedNotes.Add(note); } @@ -308,22 +308,6 @@ namespace Biblioteque_de_Class NoteTagged[note].Remove(tagToRemove); } - /// - /// ajouter plusieur tag a une note - /// - public void AddTagsToNoteList(Note note, List tags) - { - NoteTagged.Add(note, tags); - } - - /// - ///supprimer tout les tags d'une note - /// - public void RemoveTagsFromNoteList(Note note) - { - NoteTagged.Remove(note); - } - /// /// modifier le nom d'une note /// @@ -332,9 +316,13 @@ namespace Biblioteque_de_Class /// public void SetNoteName(Note note, string newname) { + if (!NoteList.Contains(note)) + { + throw new NotFoundException("Note not found"); + } foreach(Note n in NoteList) { - if(n.Name == note.Name) + if(n.Name == newname) { throw new AlreadyUsedException("This name is already used"); } diff --git a/notus/Tests/UnitTests_Model/Database_Tests.cs b/notus/Tests/UnitTests_Model/Database_Tests.cs index 2cbf3b1..0d908b7 100644 --- a/notus/Tests/UnitTests_Model/Database_Tests.cs +++ b/notus/Tests/UnitTests_Model/Database_Tests.cs @@ -112,12 +112,52 @@ namespace UnitTests_Model } [Test] - public void AddUser_DuplicateUser_ThrowsException() + public void AddUser_DuplicateUserName_ThrowsException() { - User user = new User("John", "john@example.com", "password123"); + User user = new User("John", "johnDae@example.com", "password123"); Assert.Throws(() => database.AddUser(user)); } + [Test] + public void AddUser_DuplicateUserEmail_ThrowsException() + { + User user = new User("Bob", "john@example.com", "password123"); + Assert.Throws(() => database.AddUser(user)); + } + + // removeUser tests + [Test] + public void RemoveUser_ExistingUser_RemovesUserFromList() + { + User user = database.UserList[0]; + database.RemoveUser(user); + Assert.That(database.UserList, !Contains.Item(user)); + } + + [Test] + public void RemoveUser_NotExistingUser_ThrowsException() + { + User user = new User("Bob", "bob@example.com", "password123"); + Assert.Throws(() => database.RemoveUser(user)); + } + + // AddTheme tests + [Test] + public void AddTheme_ValidTheme_AddsThemeToList() + { + Theme theme = new Theme("Theme1", ",,,".Split().ToList()); + database.AddTheme(theme); + Assert.That(database.ThemeList, Contains.Item(theme)); + } + + [Test] + public void AddTheme_DuplicateTheme_ThrowsException() + { + Theme theme = new Theme("Theme1", ",,,".Split().ToList()); + database.ThemeList.Add(theme); + Assert.Throws(() => database.AddTheme(theme)); + } + // GetTheme tests [Test] public void GetTheme_ExistingTheme_ReturnsTheme() @@ -133,6 +173,8 @@ namespace UnitTests_Model [Test] public void GetTheme_NonExistingTheme_ReturnsNull() { + Theme expectedTheme = new Theme("Theme1", ",,,".Split().ToList()); + database.ThemeList.Add(expectedTheme); Assert.Throws(() => database.GetTheme("NonExistingTheme")); } diff --git a/notus/Tests/UnitTests_Model/User_Tests.cs b/notus/Tests/UnitTests_Model/User_Tests.cs index ae25489..88880a2 100644 --- a/notus/Tests/UnitTests_Model/User_Tests.cs +++ b/notus/Tests/UnitTests_Model/User_Tests.cs @@ -16,7 +16,8 @@ namespace UnitTests_Model { user = new User("John", "john@example.com", "password123"); user.CreateTag("tag1","#FF0000"); - user.CreateNote("note1", "default.png"); + user.CreateTag("tag2", "#00FF00"); + user.CreateNote("note1", "default.png"); user.AddTagFromNoteList(user.NoteList[0], user.TagList[0]); user.CreateNote("note2", "default.png"); } @@ -47,6 +48,34 @@ namespace UnitTests_Model Assert.Throws(() => user.SearchNoteByTag(user.NoteList, "tag3")); } + //test SearchNoteByDate + [Test] + public void User_SearchNoteByDate_ValidData_ReturnsNote() + { + Note note = user.SearchNoteByDate(user.NoteList, "note1", DateOnly.FromDateTime(DateTime.Now), DateOnly.FromDateTime(DateTime.Now)).First(); + Assert.That(note.Name, Is.EqualTo("note1")); + } + + [Test] + public void User_SearchNoteByDate_InvalidData_ReturnsNull() + { + Assert.That(user.SearchNoteByDate(user.NoteList, "note3", DateOnly.FromDateTime(DateTime.Now), DateOnly.FromDateTime(DateTime.Now)), Is.Empty); + } + + //test GetNoteByName + [Test] + public void User_GetNoteByName_ValidData_ReturnsNote() + { + Note note = user.GetNoteByName("note1"); + Assert.That(note.Name, Is.EqualTo("note1")); + } + + [Test] + public void User_GetNoteByName_InvalidData_ReturnsNull() + { + Assert.Throws(() => user.GetNoteByName("note3")); + } + //test searchTagByName [Test] public void User_SearchTagByName_ValidData_ReturnsTag() @@ -90,6 +119,165 @@ namespace UnitTests_Model } //test createNote + [Test] + public void User_CreateNote_ValidData_AddNote() + { + user.CreateNote("note3", "default.png"); + Assert.That(user.NoteList.Count, Is.EqualTo(3)); + } + + [Test] + public void User_CreateNote_InvalidData_ThrowException() + { + user.CreateNote("note3", "default.png"); + Assert.Throws(() => user.CreateNote("note3", "default.png")); + } + [Test] + public void User_CreateNote_ValidData_secondNote_AddNote() + { + User user2 = new User("John", "rien", "choco"); + user2.CreateNote("note3", "default.png"); + user2.CreateNote("note4", "default.png"); + Assert.That(user2.NoteList.Count, Is.EqualTo(2)); + Assert.That(user2.NoteList[1].id, Is.EqualTo(1)); + } + + //test DeleteNote + [Test] + public void User_DeleteNote_ValidData_RemoveNote() + { + Note note = user.NoteList[0]; + user.DeleteNote(note); + Assert.That(user.NoteList.Count, Is.EqualTo(1)); + } + + [Test] + public void User_DeleteNote_InvalidData_ThrowException() + { + Note note = user.NoteList[0]; + user.DeleteNote(note); + Assert.Throws(() => user.DeleteNote(note)); + } + + //test CreateTag + [Test] + public void User_CreateTag_ValidData_AddTag() + { + user.CreateTag("tag3", "#FF0000"); + Assert.That(user.TagList.Count, Is.EqualTo(3)); + } + + [Test] + public void User_CreateTag_InvalidData_ThrowException() + { + user.CreateTag("tag3", "#FF0000"); + Assert.Throws(() => user.CreateTag("tag2", "#FF0000")); + } + + //test EditTagName + [Test] + public void User_EditTagName_ValidData_EditTag() + { + user.EditTagName(user.TagList[0], "tag3"); + Assert.That(user.TagList[0].Name, Is.EqualTo("tag3")); + } + + [Test] + public void User_EditTagName_InvalidData_ThrowException() + { + Tags tags = new Tags("tag2", "#FF0000"); + Assert.Throws(() => user.EditTagName(tags, "tag1")); + } + + [Test] + public void User_EditTagName_InvalidData2_ThrowException() + { + Assert.Throws(() => user.EditTagName(user.TagList[0], "tag1")); + } + + //test EditTagColor + [Test] + public void User_EditTagColor_ValidData_EditTag() + { + user.EditTagColor(user.TagList[0], "#FF0000"); + Assert.That(user.TagList[0].Color, Is.EqualTo("#FF0000")); + } + + [Test] + public void User_EditTagColor_InvalidData_ThrowException() + { + Tags tags = new Tags("tag2", "#FF0000"); + Assert.Throws(() => user.EditTagColor(tags, "#000000")); + } + + //Test AddTagFromNoteList + [Test] + public void User_AddTagFromNoteList_ValidData_AddTag() + { + user.AddTagFromNoteList(user.NoteList[0], user.TagList[1]); + Assert.That(user.NoteTagged[user.NoteList[0]].Count, Is.EqualTo(2)); + } + + [Test] + public void User_AddTagFromNoteList_InvalidData_ThrowException() + { + Tags tags = new Tags("tag2", "#FF0000"); + Assert.Throws(() => user.AddTagFromNoteList(user.NoteList[0], tags)); + } + + + [Test] + public void User_AddTagFromNoteList_InvalidData2_ThrowException() + { + User uvide = new User("", "", ""); + Note note = new Note(4,"rien", "default.png", uvide); + Assert.Throws(() => user.AddTagFromNoteList(note, user.TagList[0])); + } + + //Test RemoveTagFromNoteList + [Test] + public void User_RemoveTagFromNoteList_ValidData_RemoveTag() + { + user.RemoveTagFromNoteList(user.NoteList[0], user.TagList[0]); + Assert.That(user.NoteTagged[user.NoteList[0]], Is.Empty); + } + + [Test] + public void User_RemoveTagFromNoteList_InvalidData_ThrowException() + { + Tags tags = new Tags("tag2", "#FF0000"); + Assert.Throws(() => user.RemoveTagFromNoteList(user.NoteList[0], tags)); + } + + [Test] + public void User_RemoveTagFromNoteList_InvalidData2_ThrowException() + { + User uvide = new User("", "", ""); + Note note = new Note(4, "rien", "default.png", uvide); + Assert.Throws(() => user.RemoveTagFromNoteList(note, user.TagList[0])); + } + + //test SetNoteName + [Test] + public void User_SetNoteName_ValidData_EditNote() + { + user.SetNoteName(user.NoteList[0], "note3"); + Assert.That(user.NoteList[0].Name, Is.EqualTo("note3")); + } + + [Test] + public void User_SetNoteName_InvalidData_ThrowException() + { + User uvide = new User("", "", ""); + Note note = new Note(4, "rien", "default.png", uvide); + Assert.Throws(() => user.SetNoteName(note, "note2")); + } + + [Test] + public void User_SetNoteName_InvalidData2_ThrowException() + { + Assert.Throws(() => user.SetNoteName(user.NoteList[0], "note1")); + } } }