From b988b31dd79c0e6da924fd6ebd2cda697db59b57 Mon Sep 17 00:00:00 2001 From: "camille.turpin-etienne" Date: Thu, 6 Jun 2024 11:38:26 +0200 Subject: [PATCH] test Constructeur partie --- Sources/UnitTesting/PartieUT.cs | 82 +++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 Sources/UnitTesting/PartieUT.cs diff --git a/Sources/UnitTesting/PartieUT.cs b/Sources/UnitTesting/PartieUT.cs new file mode 100644 index 0000000..9666a31 --- /dev/null +++ b/Sources/UnitTesting/PartieUT.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using Xunit; +using CoreLibrary; +using CoreLibrary.Core; +using CoreLibrary.Joueurs; +using CoreLibrary.Regles; + +namespace UnitTesting +{ + public class PartieUT + { + [Fact] + + public void TestPremierConstructeurValide() + { + IRegles regle = new ReglesClassiques(); + + Partie partie = new Partie(regle); + Assert.Equal(regle, partie.Regles); + } + + [Fact] + public void Partie_Constructeur_De_Copie_Cree_Une_Nouvelle_Instance_Avec_Les_Memes_Donnees() + { + + IRegles regles = new ReglesClassiques(); + Partie partieOriginale = new Partie(regles); + + + FieldInfo joueursField = typeof(Partie).GetField("joueurs", BindingFlags.NonPublic | BindingFlags.Instance); + FieldInfo plateauxField = typeof(Partie).GetField("plateaux", BindingFlags.NonPublic | BindingFlags.Instance); + FieldInfo courantField = typeof(Partie).GetField("courant", BindingFlags.NonPublic | BindingFlags.Instance); + PropertyInfo tourField = typeof(Partie).GetProperty("Tour", BindingFlags.Public | BindingFlags.Instance); + PropertyInfo termineField = typeof(Partie).GetProperty("Termine", BindingFlags.Public | BindingFlags.Instance); + + + Dictionary joueurs = (Dictionary)joueursField.GetValue(partieOriginale); + joueurs.Add("Joueur1", false); + joueurs.Add("Joueur2", true); + + + List plateaux = (List)plateauxField.GetValue(partieOriginale); + plateaux.Add(new Plateau(4, 10)); + plateaux.Add(new Plateau(4, 10)); + + + tourField.SetValue(partieOriginale, 5); + termineField.SetValue(partieOriginale, false); + + + var partieCopiee = new Partie(partieOriginale); + + + Dictionary joueursCopie = (Dictionary)joueursField.GetValue(partieCopiee); + List plateauxCopie = (List)plateauxField.GetValue(partieCopiee); + int courantCopie = (int)courantField.GetValue(partieCopiee); + int tourCopie = (int)tourField.GetValue(partieCopiee); + bool termineCopie = (bool)termineField.GetValue(partieCopiee); + + + Assert.Equal(joueurs.Count, joueursCopie.Count); + Assert.Equal(plateaux.Count, plateauxCopie.Count); + Assert.Equal(5, tourCopie); + Assert.False(termineCopie); + Assert.Equal(regles, partieCopiee.Regles); + + foreach (var joueur in joueurs.Keys) + { + Assert.True(joueursCopie.ContainsKey(joueur)); + Assert.Equal(joueurs[joueur], joueursCopie[joueur]); + } + + foreach (var plateau in plateaux) + { + Assert.Contains(plateau, plateauxCopie); + } + } + } +}