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