diff --git a/src/UnitTests/UnitTestDataContractJson.cs b/src/UnitTests/UnitTestDataContractJson.cs index 28aec10..3383a51 100644 --- a/src/UnitTests/UnitTestDataContractJson.cs +++ b/src/UnitTests/UnitTestDataContractJson.cs @@ -12,16 +12,16 @@ namespace UnitTests /// /// Vérifie que la propriété FileName a la valeur par défaut "SauvegardeDonnees.json". /// - public class DataContractXmlTests + public class DataContractJsonTests { [Fact] public void FileName_Should_HaveDefaultValue() { // Arrange - var dataContractXml = new DataContractJson(); + var dataContractJson = new DataContractJson(); // Assert - Assert.Equal("SauvegardeDonnees.json", dataContractXml.FileName); + Assert.Equal("SauvegardeDonnees.json", dataContractJson.FileName); } /// @@ -31,10 +31,28 @@ namespace UnitTests public void FilePath_Should_HaveDefaultValue() { // Arrange - var dataContractXml = new DataContractJson(); + var dataContractJson = new DataContractJson(); // Assert - Assert.Equal(Path.Combine(AppDomain.CurrentDomain.BaseDirectory), dataContractXml.FilePath); + Assert.Equal(Path.Combine(AppDomain.CurrentDomain.BaseDirectory), dataContractJson.FilePath); + } + + /// + /// Vérifie que la propriété FilePath peut être assignée avec une autre valeur et que la valeur assignée est correcte. + /// + [Theory] + [InlineData("C:\\Data\\")] + [InlineData("D:\\Backup\\")] + public void FilePath_Should_BeAssignable(string filePath) + { + // Arrange + var dataContractJson = new DataContractJson(); + + // Act + dataContractJson.FilePath = filePath; + + // Assert + Assert.Equal(filePath, dataContractJson.FilePath); } } } diff --git a/src/UnitTests/UnitTestDataContractXml.cs b/src/UnitTests/UnitTestDataContractXml.cs index c14a85c..c3410c2 100644 --- a/src/UnitTests/UnitTestDataContractXml.cs +++ b/src/UnitTests/UnitTestDataContractXml.cs @@ -41,6 +41,24 @@ namespace UnitTests // Assert Assert.Equal(Path.Combine(AppDomain.CurrentDomain.BaseDirectory), dataContractXml.FilePath); } + + /// + /// Vérifie que la propriété FilePath peut être assignée avec une autre valeur et que la valeur assignée est correcte. + /// + [Theory] + [InlineData("C:\\Data\\")] + [InlineData("D:\\Backup\\")] + public void FilePath_Should_BeAssignable(string filePath) + { + // Arrange + var dataContractXml = new DataContractXml(); + + // Act + dataContractXml.FilePath = filePath; + + // Assert + Assert.Equal(filePath, dataContractXml.FilePath); + } } } } diff --git a/src/UnitTests/UnitTestDataToPersist.cs b/src/UnitTests/UnitTestDataToPersist.cs index d39e862..802590b 100644 --- a/src/UnitTests/UnitTestDataToPersist.cs +++ b/src/UnitTests/UnitTestDataToPersist.cs @@ -12,7 +12,7 @@ namespace UnitTests public class UnitTestDataToPersist { /// - /// Vérifie que la propriété Oeuvres est initialisée et est une instance de ObservableCollection. + /// Vérifie que la propriété Oeuvres est initialisée et est une instance de ObservableCollection. /// [Fact] public void Oeuvres_Should_BeInitialized() @@ -42,16 +42,20 @@ namespace UnitTests /// /// Vérifie que la propriété Oeuvres peut être assignée avec une autre collection d'Å“uvres et que la valeur assignée est correcte. /// - [Fact] - public void Oeuvres_Should_BeAssignable() + [Theory] + [InlineData(1)] + [InlineData(2)] + public void Oeuvres_Should_BeAssignable(int oeuvresCount) { // Arrange var dataToPersist = new DataToPersist(); - var oeuvres = new ObservableCollection + var oeuvres = new ObservableCollection(); + + // Add oeuvresCount number of oeuvres + for (int i = 0; i < oeuvresCount; i++) { - new Oeuvre("Evangelion", new List { "Action", "Future" }, "TV", "C'est une bonne série", 4, 150, "evangelion.jpg"), - new Oeuvre("[Oshi No Ko]", new List { "Action", "Future" }, "DVD", "A la fin il meurt", 2, 24, "oshinoko.png"), - }; + oeuvres.Add(new Oeuvre($"Oeuvre{i}", new List(), "Type", "Description", 0, 0, "Affiche")); + } // Act dataToPersist.Oeuvres = oeuvres; @@ -61,14 +65,22 @@ namespace UnitTests } /// - /// vérifie que la propriété Utilisateurs peut être assignée avec une autre liste d'utilisateurs et que la valeur assignée est correcte. + /// Vérifie que la propriété Utilisateurs peut être assignée avec une autre liste d'utilisateurs et que la valeur assignée est correcte. /// - [Fact] - public void Utilisateurs_Should_BeAssignable() + [Theory] + [InlineData(1)] + [InlineData(2)] + public void Utilisateurs_Should_BeAssignable(int utilisateursCount) { // Arrange var dataToPersist = new DataToPersist(); - var utilisateurs = new List { new Utilisateur(), new Utilisateur() }; + var utilisateurs = new List(); + + // Add utilisateursCount number of utilisateurs + for (int i = 0; i < utilisateursCount; i++) + { + utilisateurs.Add(new Utilisateur()); + } // Act dataToPersist.Utilisateurs = utilisateurs; diff --git a/src/UnitTests/UnitTestIPersistanceManager.cs b/src/UnitTests/UnitTestIPersistanceManager.cs index 1f28fbd..dd893e5 100644 --- a/src/UnitTests/UnitTestIPersistanceManager.cs +++ b/src/UnitTests/UnitTestIPersistanceManager.cs @@ -11,6 +11,9 @@ namespace UnitTests { public class UnitTestIPersistanceManager { + /// + /// Vérifie que la méthode ChargeDonne renvoie les données attendues. + /// [Fact] public void ChargeDonne_ReturnsExpectedData() { @@ -48,8 +51,12 @@ namespace UnitTests Assert.Equal(12, utilisateur.age); } + /// + /// Vérifie que la méthode Sauvegarder appelle Console.WriteLine. + /// [Fact] - public void Sauvegarder_CallsConsoleWriteLine() + public void Sauvegarder_CallsConsoleWriteLine() //pas besoin d'utiliser les attributs [Theory] et [InlineData] + //car il ne teste pas différentes variations de données. { // Arrange var stub = new Stub.Stub(); @@ -60,9 +67,8 @@ namespace UnitTests 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 + // Étant donné que l'implémentation de Sauvegarder appelle uniquement Console.WriteLine, + // nous ne pouvons pas tester directement la fonctionnalité, mais nous pouvons vérifier que la méthode a été appelée. } } } - diff --git a/src/UnitTests/UnitTestManager.cs b/src/UnitTests/UnitTestManager.cs index 9de6ba5..1c93792 100644 --- a/src/UnitTests/UnitTestManager.cs +++ b/src/UnitTests/UnitTestManager.cs @@ -12,13 +12,16 @@ namespace UnitTests { public class UnitTestManager { + /// + /// Vérifie que la méthode Charger charge les données à partir de PersistanceManager (Stub). + /// [Fact] public void Charger_Should_LoadDataFromPersistanceManager_Stub() { // Arrange var persistanceStub = new Stub.Stub(); var manager = new Manager(persistanceStub); - var oeuvres = new ObservableCollection + var oeuvres = new ObservableCollection { new Oeuvre("Evangelion", new List { "Action", "Future" }, "TV", "C'est une bonne série", 4, 150, "evangelion.jpg"), new Oeuvre("[Oshi No Ko]", new List { "Action", "Future" }, "DVD", "A la fin il meurt", 2, 24, "oshinoko.png"), @@ -41,17 +44,20 @@ namespace UnitTests Assert.Equal("evangelion.jpg", evangelion.Affiche); } + /// + /// Vérifie que la méthode Charger charge les données à partir de PersistanceManager (DataContractXml). + /// [Fact] public void Charger_Should_LoadDataFromPersistanceManager_DataContractXml() { // Arrange var persistanceXml = new DataContractPersistance.DataContractXml(); var manager = new Manager(persistanceXml); - var oeuvres = new ObservableCollection + var oeuvres = new ObservableCollection { new Oeuvre("Evangelion", new List { "Action", "Future" }, "TV", "C'est une bonne série", 4, 150, "evangelion.jpg"), new Oeuvre("[Oshi No Ko]", new List { "Action", "Future" }, "DVD", "A la fin il meurt", 2, 24, "oshinoko.png"), - }; + }; var utilisateurs = new List { new Utilisateur(), new Utilisateur() }; // Act @@ -64,16 +70,19 @@ namespace UnitTests Assert.Equal(utilisateurs.Count, manager.Utilisateurs.Count); } + /// + /// Vérifie que la méthode Sauvegarder enregistre les données en utilisant PersistanceManager (DataContractXml). + /// [Fact] public void Sauvegarder_Should_SaveDataUsingPersistanceManager_DataContractXml() { // Arrange var persistanceXml = new DataContractPersistance.DataContractXml(); var manager = new Manager(persistanceXml); - var oeuvres = new ObservableCollection - { - new Oeuvre("Evangelion", new List { "Action", "Future" }, "TV", "C'est une bonne série", 4, 150, "evangelion.jpg"), - new Oeuvre("[Oshi No Ko]", new List { "Action", "Future" }, "DVD", "A la fin il meurt", 2, 24, "oshinoko.png"), + var oeuvres = new ObservableCollection + { + new Oeuvre("Evangelion", new List { "Action", "Future" }, "TV", "C'est une bonne série", 4, 150, "evangelion.jpg"), + new Oeuvre("[Oshi No Ko]", new List { "Action", "Future" }, "DVD", "A la fin il meurt", 2, 24, "oshinoko.png"), }; var utilisateurs = new List { new Utilisateur(), new Utilisateur() }; diff --git a/src/UnitTests/UnitTestOeuvre.cs b/src/UnitTests/UnitTestOeuvre.cs index 306083b..49a37c2 100644 --- a/src/UnitTests/UnitTestOeuvre.cs +++ b/src/UnitTests/UnitTestOeuvre.cs @@ -9,6 +9,16 @@ namespace UnitTests { public class UnitTestOeuvre { + /// + /// Vérifie que le constructeur de la classe Oeuvre initialise correctement les propriétés avec tous les paramètres. + /// + /// Le nom de l'Å“uvre. + /// Les genres de l'Å“uvre. + /// Le type de l'Å“uvre. + /// La description de l'Å“uvre. + /// La note de l'Å“uvre. + /// Le nombre d'épisodes de l'Å“uvre. + /// L'affiche de l'Å“uvre. [Theory] [InlineData("[Oshi No Ko]", new string[] { "Action", "Drama", "Fantasy" }, "TV Series", "A thrilling anime series.", 9, 25, "oshinoko.png")] public void Oeuvre_Constructor_WithAllParameters_ShouldSetPropertiesCorrectly( @@ -27,6 +37,14 @@ namespace UnitTests Assert.Equal(affiche, oeuvre.Affiche); } + /// + /// Vérifie que le constructeur de la classe Oeuvre initialise correctement les propriétés avec les paramètres requis. + /// + /// Le nom de l'Å“uvre. + /// Le type de l'Å“uvre. + /// La description de l'Å“uvre. + /// Le nombre d'épisodes de l'Å“uvre. + /// L'affiche de l'Å“uvre. [Theory] [InlineData("One Piece", "TV Series", "An epic adventure.", 1000, "onepiece.jpg")] public void Oeuvre_Constructor_WithRequiredParameters_ShouldSetPropertiesCorrectly( @@ -45,6 +63,15 @@ namespace UnitTests Assert.Equal(affiche, oeuvre.Affiche); } + /// + /// Vérifie que la méthode AjouterEpisode augmente le nombre d'épisodes de l'Å“uvre du montant donné. + /// + /// Le nom de l'Å“uvre. + /// Le type de l'Å“uvre. + /// La description de l'Å“uvre. + /// Le nombre d'épisodes de l'Å“uvre. + /// L'affiche de l'Å“uvre. + /// Le nombre d'épisodes à ajouter. [Theory] [InlineData("Naruto", "TV Series", "A ninja's journey.", 220, "evangelion.jpg", 50)] [InlineData("Dragon Ball", "TV Series", "A Saiyan's story.", 291, "evangelion.jpg", 20)] diff --git a/src/UnitTests/UnitTestUtilisateur.cs b/src/UnitTests/UnitTestUtilisateur.cs index e83e6c3..08ab231 100644 --- a/src/UnitTests/UnitTestUtilisateur.cs +++ b/src/UnitTests/UnitTestUtilisateur.cs @@ -4,6 +4,15 @@ namespace UnitTests { public class UnitTestUtilisateur { + /// + /// Vérifie que le constructeur de la classe Utilisateur initialise correctement les propriétés. + /// + /// L'adresse e-mail de l'utilisateur. + /// Le pseudo de l'utilisateur. + /// Le mot de passe de l'utilisateur. + /// Le nom de l'utilisateur. + /// Le prénom de l'utilisateur. + /// L'âge de l'utilisateur. [Theory] [InlineData("test@test.com", "pseudo", "mdp", "John", "Doe", 30)] [InlineData("test2@test.com", "pseudo2", "mdp2", "Jane", "Smith", 25)] @@ -21,6 +30,10 @@ namespace UnitTests Assert.Equal(age, utilisateur.age); } + /// + /// Vérifie que la méthode SupprimerUtilisateur réinitialise les propriétés de l'utilisateur à null. + /// + /// L'utilisateur à supprimer. // Utilisez [MemberData] pour des jeux de données dynamiques [Theory] [MemberData(nameof(UtilisateursTestData.GetTestData), MemberType = typeof(UtilisateursTestData))] @@ -38,6 +51,9 @@ namespace UnitTests } } + /// + /// Classe de données pour les tests de la classe Utilisateur. + /// public class UtilisateursTestData { public static IEnumerable GetTestData() @@ -46,4 +62,4 @@ namespace UnitTests yield return new object[] { new Utilisateur("test2@test.com", "pseudo2", "mdp2", "Jane", "Smith", 25) }; } } -} \ No newline at end of file +}