diff --git a/src/MangaMap/DataContractPersistance/DataContract.cs b/src/MangaMap/DataContractPersistance/DataContract.cs
deleted file mode 100644
index 52b7b2f..0000000
--- a/src/MangaMap/DataContractPersistance/DataContract.cs
+++ /dev/null
@@ -1,82 +0,0 @@
-using Models;
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Diagnostics;
-using System.Linq;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Threading.Tasks;
-using System.Xml;
-
-namespace MangaMap.DataContractPersistance
-{
- ///
- /// Implémentation de l'interface IPersistanceManager utilisant la sérialisation avec DataContract.
- ///
- public class DataContract : IPersistanceManager
- {
- ///
- /// Obtient ou définit le nom du fichier de sauvegarde.
- ///
- public string FileName { get; set; } = "SauvegardeDonnees.xml";
-
- ///
- /// Obtient ou définit le chemin du fichier de sauvegarde.
- ///
- public string FilePath { get; set; } = Path.Combine(AppDomain.CurrentDomain.BaseDirectory);
-
- ///
- /// Charge les données sauvegardées à partir du fichier xml.
- ///
- /// Un tuple contenant la liste des oeuvres et la liste des utilisateurs.
- public (ObservableCollection, List) chargeDonne()
- {
- var serializer = new DataContractSerializer(typeof(DataToPersist));
- DataToPersist data;
-
- if (File.Exists(Path.Combine(FilePath, FileName))) // Vérifiez si le fichier existe
- {
- using (Stream s = File.OpenRead(Path.Combine(FilePath, FileName)))
- {
- data = serializer.ReadObject(s) as DataToPersist;
- }
- }
- else
- {
- data = new DataToPersist(); // Si le fichier n'existe pas, créez une nouvelle liste
- }
-
- return (data.Oeuvres, data.Utilisateurs);
- }
-
- ///
- /// Sauvegarde les données dans le fichier xml.
- ///
- /// La liste des oeuvres à sauvegarder.
- /// La liste des utilisateurs à sauvegarder.
- public void sauvegarder(ObservableCollection o, List u)
- {
- var serializer = new DataContractSerializer(typeof(DataToPersist));
-
- if (!Directory.Exists(FilePath))
- {
- Debug.WriteLine("Directory doesn't exist.");
- Directory.CreateDirectory(FilePath);
- }
-
- DataToPersist data = new DataToPersist();
- data.Oeuvres = o;
- data.Utilisateurs = u;
-
- var settings = new XmlWriterSettings() { Indent = true };
- using (TextWriter tw = File.CreateText(Path.Combine(FilePath, FileName)))
- {
- using (XmlWriter w = XmlWriter.Create(tw, settings))
- {
- serializer.WriteObject(w, data); // Version d'enregistrement des données avec indentation.
- }
- }
- }
- }
-}
diff --git a/src/MangaMap/MangaMap.csproj b/src/MangaMap/MangaMap.csproj
index bb8a331..d11847b 100644
--- a/src/MangaMap/MangaMap.csproj
+++ b/src/MangaMap/MangaMap.csproj
@@ -1,11 +1,11 @@
- net7.0;
+ net7.0-android;net7.0-ios;net7.0-maccatalyst
$(TargetFrameworks);net7.0-windows10.0.19041.0
- Exe
+ Exe
MangaMap
true
true
diff --git a/src/Models/Oeuvre.cs b/src/Models/Oeuvre.cs
index 6e33fc8..f8295e9 100644
--- a/src/Models/Oeuvre.cs
+++ b/src/Models/Oeuvre.cs
@@ -106,6 +106,7 @@ namespace Models
public Oeuvre(string nom, string type, string description, int nbEpisode, string affiche)
{
Nom = nom;
+ Genre = new List();
Type = type;
Description = description;
NbEpisodes = nbEpisode;
diff --git a/src/UnitTests/UnitTestOeuvre.cs b/src/UnitTests/UnitTestOeuvre.cs
new file mode 100644
index 0000000..5449031
--- /dev/null
+++ b/src/UnitTests/UnitTestOeuvre.cs
@@ -0,0 +1,76 @@
+using Models;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace UnitTests
+{
+ public class UnitTestOeuvre
+ {
+ [Fact]
+ public void Oeuvre_Constructor_WithAllParameters_ShouldSetPropertiesCorrectly()
+ {
+ // Arrange
+ string nom = "[Oshi No Ko]";
+ List genre = new List { "Action", "Drama", "Fantasy" };
+ string type = "TV Series";
+ string description = "A thrilling anime series.";
+ int note = 9;
+ int nbEpisodes = 25;
+ string affiche = "oshinoko.png";
+
+ // Act
+ Oeuvre oeuvre = new Oeuvre(nom, genre, type, description, note, nbEpisodes, affiche);
+
+ // Assert
+ Assert.Equal(nom, oeuvre.Nom);
+ Assert.Equal(genre, oeuvre.Genre);
+ Assert.Equal(type, oeuvre.Type);
+ Assert.Equal(description, oeuvre.Description);
+ Assert.Equal(note, oeuvre.Note);
+ Assert.Equal(nbEpisodes, oeuvre.NbEpisodes);
+ Assert.Equal(affiche, oeuvre.Affiche);
+ }
+
+ [Fact]
+ public void Oeuvre_Constructor_WithRequiredParameters_ShouldSetPropertiesCorrectly()
+ {
+ // Arrange
+ string nom = "One Piece";
+ string type = "TV Series";
+ string description = "An epic adventure.";
+ int nbEpisodes = 1000;
+ string affiche = "onepiece.jpg";
+
+ // Act
+ Oeuvre oeuvre = new Oeuvre(nom, type, description, nbEpisodes, affiche);
+
+ // Assert
+ Assert.Equal(nom, oeuvre.Nom);
+ Assert.Empty(oeuvre.Genre);
+ Assert.Equal(type, oeuvre.Type);
+ Assert.Equal(description, oeuvre.Description);
+ Assert.Equal(0, oeuvre.Note);
+ Assert.Equal(nbEpisodes, oeuvre.NbEpisodes);
+ Assert.Equal(affiche, oeuvre.Affiche);
+ }
+
+ [Fact]
+ public void AjouterEpisode_ShouldIncreaseNbEpisodesByGivenAmount()
+ {
+ // Arrange
+ Oeuvre oeuvre = new Oeuvre("Naruto", "TV Series", "A ninja's journey.", 220, "evangelion.jpg");
+ int nbEpisodesToAdd = 50;
+ int expectedNbEpisodes = oeuvre.NbEpisodes + nbEpisodesToAdd;
+
+ // Act
+ oeuvre.AjouterEpisode(nbEpisodesToAdd);
+
+ // Assert
+ Assert.Equal(expectedNbEpisodes, oeuvre.NbEpisodes);
+ }
+
+ }
+}