From ce3a45a448e3b66c48971fcd8de004316d3b9e0f Mon Sep 17 00:00:00 2001 From: Matheo HERSAN Date: Thu, 8 Jun 2023 15:00:14 +0200 Subject: [PATCH] Start UnitTest --- src/MangaMap/App.xaml.cs | 4 +- .../DataContract.cs | 2 +- .../DataContractJSON.cs | 4 +- .../DataContractXML.cs | 2 +- .../DataToPersist.cs | 2 +- src/MangaMap/MangaMap.sln | 8 ++- src/UnitTests/UnitTestUtilisateur.cs | 57 +++++++++++++++++++ src/UnitTests/UnitTests.csproj | 28 +++++++++ src/UnitTests/Usings.cs | 1 + 9 files changed, 100 insertions(+), 8 deletions(-) rename src/MangaMap/{Stub => DataContractPersistance}/DataContract.cs (95%) rename src/MangaMap/{Stub => DataContractPersistance}/DataContractJSON.cs (97%) rename src/MangaMap/{Stub => DataContractPersistance}/DataContractXML.cs (98%) rename src/MangaMap/{Stub => DataContractPersistance}/DataToPersist.cs (91%) create mode 100644 src/UnitTests/UnitTestUtilisateur.cs create mode 100644 src/UnitTests/UnitTests.csproj create mode 100644 src/UnitTests/Usings.cs diff --git a/src/MangaMap/App.xaml.cs b/src/MangaMap/App.xaml.cs index e7f4845..734d883 100644 --- a/src/MangaMap/App.xaml.cs +++ b/src/MangaMap/App.xaml.cs @@ -39,7 +39,7 @@ public partial class App : Application if (File.Exists(Path.Combine(FilePath, FileName))) { - MyManager = new Manager(new Stub.DataContractXML()); // Utilise le DataContract comme moyen de persistance. + MyManager = new Manager(new DataContractPersistance.DataContractXML()); // Utilise le DataContract comme moyen de persistance. //MyManager = new Manager(new Stub.DataContractJSON()); // Utilise le DataContract comme moyen de persistance. } @@ -50,7 +50,7 @@ public partial class App : Application if (!File.Exists(Path.Combine(FilePath, FileName))) { - MyManager.Persistance = new Stub.DataContractXML(); // Utilise le Stub comme moyen de persistance. + MyManager.Persistance = new DataContractPersistance.DataContractXML(); // Utilise le Stub comme moyen de persistance. //MyManager = new Manager(new Stub.DataContractJSON()); } diff --git a/src/MangaMap/Stub/DataContract.cs b/src/MangaMap/DataContractPersistance/DataContract.cs similarity index 95% rename from src/MangaMap/Stub/DataContract.cs rename to src/MangaMap/DataContractPersistance/DataContract.cs index 2c5f255..52b7b2f 100644 --- a/src/MangaMap/Stub/DataContract.cs +++ b/src/MangaMap/DataContractPersistance/DataContract.cs @@ -9,7 +9,7 @@ using System.Text; using System.Threading.Tasks; using System.Xml; -namespace MangaMap.Stub +namespace MangaMap.DataContractPersistance { /// /// Implémentation de l'interface IPersistanceManager utilisant la sérialisation avec DataContract. diff --git a/src/MangaMap/Stub/DataContractJSON.cs b/src/MangaMap/DataContractPersistance/DataContractJSON.cs similarity index 97% rename from src/MangaMap/Stub/DataContractJSON.cs rename to src/MangaMap/DataContractPersistance/DataContractJSON.cs index 617f310..08fb73a 100644 --- a/src/MangaMap/Stub/DataContractJSON.cs +++ b/src/MangaMap/DataContractPersistance/DataContractJSON.cs @@ -8,7 +8,7 @@ using System.Runtime.Serialization.Json; using System.Text; using System.Threading.Tasks; -namespace MangaMap.Stub +namespace MangaMap.DataContractPersistance { /// /// Implémentation de l'interface IPersistanceManager utilisant la sérialisation avec DataContract. @@ -65,7 +65,7 @@ namespace MangaMap.Stub { using (var writer = JsonReaderWriterFactory.CreateJsonWriter( stream, - System.Text.Encoding.UTF8, + Encoding.UTF8, false, true))//<- this boolean says that we sant indentation { diff --git a/src/MangaMap/Stub/DataContractXML.cs b/src/MangaMap/DataContractPersistance/DataContractXML.cs similarity index 98% rename from src/MangaMap/Stub/DataContractXML.cs rename to src/MangaMap/DataContractPersistance/DataContractXML.cs index 2def370..5c09abf 100644 --- a/src/MangaMap/Stub/DataContractXML.cs +++ b/src/MangaMap/DataContractPersistance/DataContractXML.cs @@ -9,7 +9,7 @@ using System.Text; using System.Threading.Tasks; using System.Xml; -namespace MangaMap.Stub +namespace MangaMap.DataContractPersistance { /// /// Implémentation de l'interface IPersistanceManager utilisant la sérialisation avec DataContract. diff --git a/src/MangaMap/Stub/DataToPersist.cs b/src/MangaMap/DataContractPersistance/DataToPersist.cs similarity index 91% rename from src/MangaMap/Stub/DataToPersist.cs rename to src/MangaMap/DataContractPersistance/DataToPersist.cs index 6f79fb1..01cb813 100644 --- a/src/MangaMap/Stub/DataToPersist.cs +++ b/src/MangaMap/DataContractPersistance/DataToPersist.cs @@ -6,7 +6,7 @@ using System.Text; using System.Threading.Tasks; using System.Collections.ObjectModel; -namespace MangaMap.Stub +namespace MangaMap.DataContractPersistance { /// /// Classe de données pour la persistance contenant les listes des oeuvres et des utilisateurs. diff --git a/src/MangaMap/MangaMap.sln b/src/MangaMap/MangaMap.sln index 499c747..954526f 100644 --- a/src/MangaMap/MangaMap.sln +++ b/src/MangaMap/MangaMap.sln @@ -5,7 +5,9 @@ VisualStudioVersion = 17.0.31611.283 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MangaMap", "MangaMap.csproj", "{1946288E-37BA-420F-89BD-A1C3D4178344}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Models", "..\Models\Models.csproj", "{D13B26C4-A575-4577-A735-0B04DC02BC85}" +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}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -23,6 +25,10 @@ Global {D13B26C4-A575-4577-A735-0B04DC02BC85}.Debug|Any CPU.Build.0 = Debug|Any CPU {D13B26C4-A575-4577-A735-0B04DC02BC85}.Release|Any CPU.ActiveCfg = Release|Any CPU {D13B26C4-A575-4577-A735-0B04DC02BC85}.Release|Any CPU.Build.0 = Release|Any CPU + {6B675815-FEE2-49D0-BAF9-84ECD5116FF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {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 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/UnitTests/UnitTestUtilisateur.cs b/src/UnitTests/UnitTestUtilisateur.cs new file mode 100644 index 0000000..7f903a3 --- /dev/null +++ b/src/UnitTests/UnitTestUtilisateur.cs @@ -0,0 +1,57 @@ +using Models; + +namespace UnitTests +{ + public class UnitTestUtilisateur + { + [Fact] + public void TestUtilisateur() + { + // Arrange + Utilisateur utilisateur = new Utilisateur("test@test.com", "pseudo", "mdp", "John", "Doe", 30); + + // Act + utilisateur.SupprimerUtilisateur(); + + // Assert + Assert.Null(utilisateur.nom); + Assert.Null(utilisateur.prenom); + Assert.Equal(0, utilisateur.age); + } + + [Fact] + public void Utilisateur_DefaultConstructor_SetsPropertiesToDefaultValues() + { + // Arrange & Act + Utilisateur utilisateur = new Utilisateur(); + + // Assert + Assert.Null(utilisateur.nom); + Assert.Null(utilisateur.prenom); + Assert.Equal(0, utilisateur.age); + } + + [Fact] + public void Utilisateur_Constructor_SetsPropertiesCorrectly() + { + // Arrange + string email = "test@test.com"; + string pseudo = "pseudo"; + string mdp = "mdp"; + string nom = "John"; + string prenom = "Doe"; + int age = 30; + + // Act + Utilisateur utilisateur = new Utilisateur(email, pseudo, mdp, nom, prenom, age); + + // Assert + Assert.Equal(email, utilisateur.Email); + Assert.Equal(pseudo, utilisateur.Pseudo); + Assert.Equal(mdp, utilisateur.MotDePasse); + Assert.Equal(nom, utilisateur.nom); + Assert.Equal(prenom, utilisateur.prenom); + Assert.Equal(age, utilisateur.age); + } + } +} \ No newline at end of file diff --git a/src/UnitTests/UnitTests.csproj b/src/UnitTests/UnitTests.csproj new file mode 100644 index 0000000..de864cf --- /dev/null +++ b/src/UnitTests/UnitTests.csproj @@ -0,0 +1,28 @@ + + + + net7.0 + enable + enable + + false + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + diff --git a/src/UnitTests/Usings.cs b/src/UnitTests/Usings.cs new file mode 100644 index 0000000..8c927eb --- /dev/null +++ b/src/UnitTests/Usings.cs @@ -0,0 +1 @@ +global using Xunit; \ No newline at end of file