You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
482 lines
17 KiB
482 lines
17 KiB
using Biblioteque_de_Class;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace UnitTests_Model
|
|
{
|
|
public class User_Tests
|
|
{
|
|
private User user;
|
|
|
|
[SetUp]
|
|
public void Setup()
|
|
{
|
|
user = new User("John", "john@example.com", "password123");
|
|
user.CreateTag("tag1","#FF0000");
|
|
user.CreateTag("tag2", "#00FF00");
|
|
user.CreateNote("note1", "default.png");
|
|
user.AddTagFromNoteList(user.NoteList[0], user.TagList[0]);
|
|
user.CreateNote("note2", "default.png");
|
|
user.AddTheme(new Theme("white","#FFAAAA,#000000,#999999".Split(',').ToList()));
|
|
}
|
|
|
|
//test searchnoteByName
|
|
[Test]
|
|
public void User_SearchNoteByName_ValidData_ReturnsNote()
|
|
{
|
|
Note note = user.SearchNoteByName(user.NoteList,"note1").First();
|
|
Assert.That(note.Name, Is.EqualTo("note1"));
|
|
}
|
|
[Test]
|
|
public void User_SearchNoteByName_InvalidData_ReturnsNull()
|
|
{
|
|
Assert.That(user.SearchNoteByName(user.NoteList, "note3"), Is.Empty);
|
|
}
|
|
|
|
//test seachNoteBytag
|
|
[Test]
|
|
public void User_SearchNoteByTag_ValidData_ReturnsNote()
|
|
{
|
|
Note note = user.SearchNoteByTag(user.NoteList, "tag1").First();
|
|
Assert.That(note.Name, Is.EqualTo("note1"));
|
|
}
|
|
[Test]
|
|
public void User_SearchNoteByTag_InvalidData_ReturnsNull()
|
|
{
|
|
Assert.Throws<NotFoundException>(() => 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<NotFoundException>(() => user.GetNoteByName("note3"));
|
|
}
|
|
|
|
//test searchTagByName
|
|
[Test]
|
|
public void User_SearchTagByName_ValidData_ReturnsTag()
|
|
{
|
|
Tags tag = user.SearchTagByName(user.TagList, "tag1").First();
|
|
Assert.That(tag.Name, Is.EqualTo("tag1"));
|
|
}
|
|
[Test]
|
|
public void User_SearchTagByName_InvalidData_ReturnsNull()
|
|
{
|
|
Assert.That(user.SearchTagByName(user.TagList, "tag3"), Is.Empty);
|
|
}
|
|
|
|
//test AddFavorite
|
|
[Test]
|
|
public void User_AddFavorite_ValidData_AddNote()
|
|
{
|
|
user.AddFavorite(user.NoteList[0]);
|
|
Assert.That(user.FavList.Count, Is.EqualTo(1));
|
|
}
|
|
[Test]
|
|
public void User_AddFavorite_InvalidData_ThrowException()
|
|
{
|
|
user.AddFavorite(user.NoteList[0]);
|
|
Assert.Throws<AlreadyExistException>(() => user.AddFavorite(user.NoteList[0]));
|
|
}
|
|
|
|
//test RemoveFavorite
|
|
|
|
[Test]
|
|
public void User_RemoveFavorite_ValidData_RemoveNote()
|
|
{
|
|
user.AddFavorite(user.NoteList[0]);
|
|
user.RemoveFavorite(user.NoteList[0]);
|
|
Assert.That(user.FavList, Is.Empty);
|
|
}
|
|
[Test]
|
|
public void User_RemoveFavorite_InvalidData_ThrowException()
|
|
{
|
|
Assert.Throws<NotFoundException>(() => user.RemoveFavorite(user.NoteList[0]));
|
|
}
|
|
|
|
//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<AlreadyExistException>(() => 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<NotFoundException>(() => 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<AlreadyExistException>(() => user.CreateTag("tag2", "#FF0000"));
|
|
}
|
|
|
|
//test DeleteTag
|
|
[Test]
|
|
public void User_DeleteTag_ValidData_RemoveTag()
|
|
{
|
|
Tags tag = user.TagList[0];
|
|
user.DeleteTag(tag);
|
|
Assert.That(user.TagList.Count, Is.EqualTo(1));
|
|
}
|
|
|
|
[Test]
|
|
public void User_DeleteTag_InvalidData_ThrowException()
|
|
{
|
|
Tags tag = user.TagList[0];
|
|
user.DeleteTag(tag);
|
|
Assert.Throws<NotFoundException>(() => user.DeleteTag(tag));
|
|
}
|
|
|
|
//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<NotFoundException>(() => user.EditTagName(tags, "tag1"));
|
|
}
|
|
|
|
[Test]
|
|
public void User_EditTagName_InvalidData2_ThrowException()
|
|
{
|
|
Assert.Throws<AlreadyExistException>(() => 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<NotFoundException>(() => 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<NotFoundException>(() => 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<NotFoundException>(() => 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<NotFoundException>(() => 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<NotFoundException>(() => 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<NotFoundException>(() => user.SetNoteName(note, "note2"));
|
|
}
|
|
|
|
[Test]
|
|
public void User_SetNoteName_InvalidData2_ThrowException()
|
|
{
|
|
Assert.Throws<AlreadyUsedException>(() => user.SetNoteName(user.NoteList[0], "note1"));
|
|
}
|
|
|
|
//test ChangePassword
|
|
[Test]
|
|
public void User_ChangePassword_ValidData_ChangePassword()
|
|
{
|
|
user.ChangePassword("chocoChoco");
|
|
Assert.That(user.Password, Is.EqualTo(HashCodeModel.GetSHA256Hash("chocoChoco").ToString()));
|
|
}
|
|
|
|
[Test]
|
|
public void User_ChangePassword_InvalidData_ThrowException()
|
|
{
|
|
user.ChangePassword("chocoChoco");
|
|
Assert.Throws<AlreadyUsedException>(() => user.ChangePassword("chocoChoco"));
|
|
}
|
|
|
|
[Test]
|
|
public void User_ChangePassword_InvalidData1_ThrowException()
|
|
{
|
|
Assert.Throws<NotAllowedException>(() => user.ChangePassword("choco"));
|
|
}
|
|
|
|
[Test]
|
|
public void User_ChangePassword_InvalidData2_ThrowException()
|
|
{
|
|
Assert.Throws<NotAllowedException>(() => user.ChangePassword(""));
|
|
}
|
|
|
|
//test ChangeTheme
|
|
[Test]
|
|
public void User_ChangeTheme_ValidData_ChangeTheme()
|
|
{
|
|
user.ChangeTheme(new Theme("dark", "#0000FF,#FF00FF,#FFFFFF".Split(',').ToList()));
|
|
Assert.That(user.UseTheme.Name, Is.EqualTo("dark"));
|
|
}
|
|
|
|
[Test]
|
|
public void User_ChangeTheme_InvalidData_ThrowException()
|
|
{
|
|
user.ChangeTheme(new Theme("dark", "#0000FF,#FF00FF,#FFFFFF".Split(',').ToList()));
|
|
Assert.Throws<AlreadyExistException>(() => user.ChangeTheme(new Theme("dark", "#0000FF,#FF00FF,#FFFFFF".Split(',').ToList())));
|
|
}
|
|
|
|
//test ChangeThemeName
|
|
[Test]
|
|
public void User_ChangeThemeName_ValidData_ChangeThemeName()
|
|
{
|
|
user.ChangeThemeName(user.AddedTheme[0], "dark");
|
|
Assert.That(user.AddedTheme[0].Name, Is.EqualTo("dark"));
|
|
}
|
|
|
|
[Test]
|
|
public void User_ChangeThemeName_InvalidData_ThrowException()
|
|
{
|
|
user.AddTheme(new Theme("dark", "#0000FF,#FF00FF,#FFFFFF".Split(',').ToList()));
|
|
Assert.Throws<AlreadyExistException>(() => user.ChangeThemeName(user.AddedTheme[0], "dark"));
|
|
}
|
|
|
|
[Test]
|
|
public void User_ChangeThemeName_InvalidData2_ThrowException()
|
|
{
|
|
Assert.Throws<AlreadyExistException>(() => user.ChangeThemeName(user.AddedTheme[0], "white"));
|
|
}
|
|
|
|
//test ChangeThemeColors
|
|
[Test]
|
|
public void User_ChangeThemeColors_ValidData_ChangeThemeColors()
|
|
{
|
|
// Arrange
|
|
var theme = new Theme("blacktheme", new List<string> { "#000000", "#FF00FF", "#OOFFOO" });
|
|
var newColors = new List<string> { "#111111", "#222222", "#333333" };
|
|
|
|
// Act
|
|
user.ChangeThemeColors(theme, newColors);
|
|
|
|
// Assert
|
|
Assert.That(theme.ColorList[0], Is.EqualTo(newColors[0]));
|
|
Assert.That(theme.ColorList[1], Is.EqualTo(newColors[1]));
|
|
Assert.That(theme.ColorList[2], Is.EqualTo(newColors[2]));
|
|
}
|
|
|
|
[Test]
|
|
public void User_ChangeThemeColors_InvalidData_ThrowException()
|
|
{
|
|
// Arrange
|
|
var theme = new Theme("blacktheme", new List<string> { "#000000", "#FF00FF", "#OOFFOO" });
|
|
var sameColors = new List<string> { "#000000", "#FF00FF", "#OOFFOO" };
|
|
|
|
// Act & Assert
|
|
Assert.Throws<AlreadyExistException>(() => user.ChangeThemeColors(theme, sameColors));
|
|
}
|
|
|
|
[Test]
|
|
public void User_ChangeThemeColors_InvalidData1_ThrowException()
|
|
{
|
|
// Arrange
|
|
var theme = new Theme("blacktheme", new List<string> { "#000000", "#FF00FF", "#OOFFOO" });
|
|
var differentColors = new List<string> { "#111111", "#222222", "#333333", "#444444" };
|
|
|
|
// Act & Assert
|
|
Assert.Throws<NotFoundException>(() => user.ChangeThemeColors(theme, differentColors));
|
|
}
|
|
|
|
//test AddTheme
|
|
[Test]
|
|
public void User_AddTheme_ValidData_AddTheme()
|
|
{
|
|
user.AddTheme(new Theme("dark", "#0000FF,#FF00FF,#FFFFFF".Split(',').ToList()));
|
|
Assert.That(user.AddedTheme[1].Name, Is.EqualTo("dark"));
|
|
}
|
|
|
|
[Test]
|
|
public void User_AddTheme_InvalidData_ThrowException()
|
|
{
|
|
user.AddTheme(new Theme("dark", "#0000FF,#FF00FF,#FFFFFF".Split(',').ToList()));
|
|
Assert.Throws<AlreadyExistException>(() => user.AddTheme(new Theme("dark", "#0000FF,#FF00FF,#FFFFFF".Split(',').ToList())));
|
|
}
|
|
|
|
//test RemoveTheme
|
|
[Test]
|
|
public void User_RemoveTheme_ValidData_RemoveTheme()
|
|
{
|
|
user.AddTheme(new Theme("dark", "#0000FF,#FF00FF,#FFFFFF".Split(',').ToList()));
|
|
user.RemoveTheme(user.AddedTheme[1]);
|
|
Assert.That(user.AddedTheme.Count, Is.EqualTo(1));
|
|
}
|
|
|
|
[Test]
|
|
public void User_RemoveTheme_InvalidData_ThrowException()
|
|
{
|
|
Assert.Throws<NotFoundException>(() => user.RemoveTheme(new Theme("dark", "#0000FF,#FF00FF,#FFFFFF".Split(',').ToList())));
|
|
}
|
|
|
|
//test GetTheme
|
|
[Test]
|
|
public void User_GetTheme_ValidData_GetTheme()
|
|
{
|
|
user.AddTheme(new Theme("dark", "#0000FF,#FF00FF,#FFFFFF".Split(',').ToList()));
|
|
Assert.That(user.GetTheme("dark").Name, Is.EqualTo("dark"));
|
|
}
|
|
|
|
[Test]
|
|
public void User_GetTheme_InvalidData_ThrowException()
|
|
{
|
|
Assert.Throws<NotFoundException>(() => user.GetTheme("dark"));
|
|
}
|
|
|
|
//test ChangeEmail
|
|
[Test]
|
|
public void User_ChangeEmail_ValidData_ChangeEmail()
|
|
{
|
|
user.ChangeEmail("nouvelleEmail@gmail.com");
|
|
Assert.That(user.Email, Is.EqualTo("nouvelleEmail@gmail.com"));
|
|
}
|
|
|
|
[Test]
|
|
public void User_ChangeEmail_InvalidData_ThrowException()
|
|
{
|
|
Assert.Throws<NotAllowedException>(() => user.ChangeEmail(""));
|
|
}
|
|
|
|
//test ChangeProfilePicture
|
|
[Test]
|
|
public void User_ChangeProfilePicture_ValidData_ChangeProfilePicture()
|
|
{
|
|
user.ChangeProfilePicture("nouvellePhoto.png");
|
|
Assert.That(user.Picture, Is.EqualTo("nouvellePhoto.png"));
|
|
}
|
|
|
|
[Test]
|
|
public void User_ChangeProfilePicture_InvalidData_ThrowException()
|
|
{
|
|
Assert.Throws<NotFoundException>(() => user.ChangeProfilePicture("photosansextesion"));
|
|
}
|
|
|
|
[Test]
|
|
public void User_ChangeProfilePicture_InvalidData2_ThrowException()
|
|
{
|
|
user.ChangeProfilePicture("");
|
|
Assert.That(user.Picture, Is.EqualTo("default.png"));
|
|
}
|
|
}
|
|
}
|