diff --git a/src/MangaMap/App.xaml.cs b/src/MangaMap/App.xaml.cs
index 734d883..fcfac7e 100644
--- a/src/MangaMap/App.xaml.cs
+++ b/src/MangaMap/App.xaml.cs
@@ -1,5 +1,5 @@
using Models;
-using MangaMap.Stub;
+using Stub;
using MangaMap.Views;
using System.Diagnostics;
diff --git a/src/MangaMap/MangaMap.csproj b/src/MangaMap/MangaMap.csproj
index d11847b..e55c277 100644
--- a/src/MangaMap/MangaMap.csproj
+++ b/src/MangaMap/MangaMap.csproj
@@ -136,6 +136,7 @@
+
\ No newline at end of file
diff --git a/src/MangaMap/MangaMap.sln b/src/MangaMap/MangaMap.sln
index 954526f..db3434e 100644
--- a/src/MangaMap/MangaMap.sln
+++ b/src/MangaMap/MangaMap.sln
@@ -7,7 +7,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MangaMap", "MangaMap.csproj
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Models", "..\Models\Models.csproj", "{D13B26C4-A575-4577-A735-0B04DC02BC85}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests", "..\UnitTests\UnitTests.csproj", "{6B675815-FEE2-49D0-BAF9-84ECD5116FF9}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTests", "..\UnitTests\UnitTests.csproj", "{6B675815-FEE2-49D0-BAF9-84ECD5116FF9}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Stub", "..\Stub\Stub.csproj", "{434D7C7C-2B01-44AA-8619-28D65657C47A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -29,6 +31,10 @@ Global
{6B675815-FEE2-49D0-BAF9-84ECD5116FF9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6B675815-FEE2-49D0-BAF9-84ECD5116FF9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6B675815-FEE2-49D0-BAF9-84ECD5116FF9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {434D7C7C-2B01-44AA-8619-28D65657C47A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {434D7C7C-2B01-44AA-8619-28D65657C47A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {434D7C7C-2B01-44AA-8619-28D65657C47A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {434D7C7C-2B01-44AA-8619-28D65657C47A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/src/MangaMap/Views/loginAdminPage.xaml.cs b/src/MangaMap/Views/loginAdminPage.xaml.cs
index fe55a2d..32b56cf 100644
--- a/src/MangaMap/Views/loginAdminPage.xaml.cs
+++ b/src/MangaMap/Views/loginAdminPage.xaml.cs
@@ -1,7 +1,7 @@
namespace MangaMap.Views;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
-using MangaMap.Stub;
+using Stub;
using Models;
///
diff --git a/src/MangaMap/Views/loginPage.xaml.cs b/src/MangaMap/Views/loginPage.xaml.cs
index 0253dd9..91ab0fa 100644
--- a/src/MangaMap/Views/loginPage.xaml.cs
+++ b/src/MangaMap/Views/loginPage.xaml.cs
@@ -1,7 +1,7 @@
namespace MangaMap.Views;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
-using MangaMap.Stub;
+using Stub;
using Models;
///
diff --git a/src/MangaMap/Stub/Stub.cs b/src/Stub/Stub.cs
similarity index 93%
rename from src/MangaMap/Stub/Stub.cs
rename to src/Stub/Stub.cs
index bb6327a..e552f59 100644
--- a/src/MangaMap/Stub/Stub.cs
+++ b/src/Stub/Stub.cs
@@ -1,56 +1,56 @@
-using Models;
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MangaMap.Stub
-{
- ///
- /// Classe de stub pour la gestion de la persistance des données.
- ///
- public class Stub : IPersistanceManager
- {
- ///
- /// Charge un jeu de données en mémoire.
- ///
- /// Un tuple contenant la liste des oeuvres et la liste des utilisateurs.
- public (ObservableCollection, List) chargeDonne()
- {
- ObservableCollection l1 = new ObservableCollection();
- List l2 = new List();
-
- Utilisateur u1 = new Utilisateur("t", "Pseudo1", "t", "Jean", "Baptiste", 12);
- Utilisateur u2 = new Utilisateur("s", "Pseudo2", "s", "Baptiste", "Jean", 12);
- Utilisateur u3 = new Utilisateur("v", "Pseudo3", "v", "David", "Marc", 12);
- List genres = new List();
- genres.Add("Action");
- genres.Add("Future");
- Oeuvre o1 = new Oeuvre("Evangelion", genres, "TV", "C'est une bonne série", 4, 150, "evangelion.jpg");
- Oeuvre o2 = new Oeuvre("[Oshi No Ko]", genres, "DVD", "A la fin il meurt", 2, 24, "oshinoko.png");
- Oeuvre o3 = new Oeuvre("One Piece", genres, "TV", "C'est la meilleur série du monde, regardez absolument", 2, 24, "onepiece.jpg");
- Oeuvre o4 = new Oeuvre("Naruto", genres, "DVD", "A la fin il meurt pas", 2, 24, "oshinoko.png");
- Oeuvre o5 = new Oeuvre("Vinland Saga", genres, "DVD", "A la fin il meurt peut-être", 2, 24, "oshinoko.png");
- Oeuvre o6 = new Oeuvre("Hell's Paradise", genres, "DVD", "A la fin j'espère il meurt pas", 2, 24, "oshinoko.png");
-
- l1.Add(o1); l1.Add(o2); l1.Add(o3); l1.Add(o4); l1.Add(o5); l1.Add(o6);
- l2.Add(u1); l2.Add(u2); l2.Add(u3);
-
- //u1.ListeOeuvreEnVisionnage.Add(o1);
-
- return (l1, l2);
- }
-
- ///
- /// Méthode non implémentée pour la sauvegarde des données.
- ///
- /// La liste des oeuvres à sauvegarder.
- /// La liste des utilisateurs à sauvegarder.
- public void sauvegarder(ObservableCollection o, List u)
- {
- throw new NotImplementedException();
- }
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Models;
+
+namespace Stub
+{
+ ///
+ /// Classe de stub pour la gestion de la persistance des données.
+ ///
+ public class Stub : IPersistanceManager
+ {
+ ///
+ /// Charge un jeu de données en mémoire.
+ ///
+ /// Un tuple contenant la liste des oeuvres et la liste des utilisateurs.
+ public (ObservableCollection, List) chargeDonne()
+ {
+ ObservableCollection l1 = new ObservableCollection();
+ List l2 = new List();
+
+ Utilisateur u1 = new Utilisateur("t", "Pseudo1", "t", "Jean", "Baptiste", 12);
+ Utilisateur u2 = new Utilisateur("s", "Pseudo2", "s", "Baptiste", "Jean", 12);
+ Utilisateur u3 = new Utilisateur("v", "Pseudo3", "v", "David", "Marc", 12);
+ List genres = new List();
+ genres.Add("Action");
+ genres.Add("Future");
+ Oeuvre o1 = new Oeuvre("Evangelion", genres, "TV", "C'est une bonne série", 4, 150, "evangelion.jpg");
+ Oeuvre o2 = new Oeuvre("[Oshi No Ko]", genres, "DVD", "A la fin il meurt", 2, 24, "oshinoko.png");
+ Oeuvre o3 = new Oeuvre("One Piece", genres, "TV", "C'est la meilleur série du monde, regardez absolument", 2, 24, "onepiece.jpg");
+ Oeuvre o4 = new Oeuvre("Naruto", genres, "DVD", "A la fin il meurt pas", 2, 24, "oshinoko.png");
+ Oeuvre o5 = new Oeuvre("Vinland Saga", genres, "DVD", "A la fin il meurt peut-être", 2, 24, "oshinoko.png");
+ Oeuvre o6 = new Oeuvre("Hell's Paradise", genres, "DVD", "A la fin j'espère il meurt pas", 2, 24, "oshinoko.png");
+
+ l1.Add(o1); l1.Add(o2); l1.Add(o3); l1.Add(o4); l1.Add(o5); l1.Add(o6);
+ l2.Add(u1); l2.Add(u2); l2.Add(u3);
+
+ //u1.ListeOeuvreEnVisionnage.Add(o1);
+
+ return (l1, l2);
+ }
+
+ ///
+ /// Méthode non implémentée pour la sauvegarde des données.
+ ///
+ /// La liste des oeuvres à sauvegarder.
+ /// La liste des utilisateurs à sauvegarder.
+ public void sauvegarder(ObservableCollection o, List u)
+ {
+ Console.WriteLine("Méthode sauvegarder() appelée.");
+ }
+ }
+}
diff --git a/src/Stub/Stub.csproj b/src/Stub/Stub.csproj
new file mode 100644
index 0000000..e45d1d7
--- /dev/null
+++ b/src/Stub/Stub.csproj
@@ -0,0 +1,13 @@
+
+
+
+ net7.0
+ enable
+ enable
+
+
+
+
+
+
+
diff --git a/src/UnitTests/UnitTestIPersistanceManager.cs b/src/UnitTests/UnitTestIPersistanceManager.cs
new file mode 100644
index 0000000..1791065
--- /dev/null
+++ b/src/UnitTests/UnitTestIPersistanceManager.cs
@@ -0,0 +1,69 @@
+using Models;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Stub;
+
+namespace UnitTests
+{
+ public class UnitTestIPersistanceManager
+ {
+ [Fact]
+ public void ChargeDonne_ReturnsExpectedData()
+ {
+ // Arrange
+ var stub = new Stub.Stub();
+
+ // Act
+ var (oeuvres, utilisateurs) = stub.chargeDonne();
+
+ // Assert
+ Assert.NotNull(oeuvres);
+ Assert.NotNull(utilisateurs);
+ Assert.Equal(6, oeuvres.Count);
+ Assert.Equal(3, utilisateurs.Count);
+
+ // Assert specific oeuvre properties
+ var evangelion = oeuvres[0];
+ Assert.Equal("Evangelion", evangelion.Nom);
+ Assert.Collection(evangelion.Genre,
+ genre => Assert.Equal("Action", genre),
+ genre => Assert.Equal("Future", genre));
+ Assert.Equal("TV", evangelion.Type);
+ Assert.Equal("C'est une bonne série", evangelion.Description);
+ Assert.Equal(4, evangelion.Note);
+ Assert.Equal(150, evangelion.NbEpisodes);
+ Assert.Equal("evangelion.jpg", evangelion.Affiche);
+
+ // Assert specific utilisateur properties
+ var utilisateur = utilisateurs[0];
+ Assert.Equal("t", utilisateur.Email);
+ Assert.Equal("Pseudo1", utilisateur.Pseudo);
+ Assert.Equal("t", utilisateur.MotDePasse);
+ Assert.Equal("Jean", utilisateur.nom);
+ Assert.Equal("Baptiste", utilisateur.prenom);
+ Assert.Equal(12, utilisateur.age);
+ }
+
+ [Fact]
+ public void Sauvegarder_CallsConsoleWriteLine()
+ {
+ // Arrange
+ var stub = new Stub.Stub();
+ var oeuvres = new ObservableCollection();
+ var utilisateurs = new List();
+
+ // Act
+ stub.sauvegarder(oeuvres, utilisateurs);
+
+ // Assert
+ // Since the implementation of Sauvegarder only calls Console.WriteLine,
+ // we can't directly test the functionality, but we can assert that the method was called
+ // You can check the console output manually to verify the expected message
+ }
+ }
+}
+
diff --git a/src/UnitTests/UnitTests.csproj b/src/UnitTests/UnitTests.csproj
index de864cf..ed48d31 100644
--- a/src/UnitTests/UnitTests.csproj
+++ b/src/UnitTests/UnitTests.csproj
@@ -1,4 +1,4 @@
-
+
net7.0
@@ -23,6 +23,7 @@
+