From 6301e32cbcbac0301dff318f78a77c3011871176 Mon Sep 17 00:00:00 2001 From: "camille.turpin-etienne" Date: Thu, 16 May 2024 17:56:40 +0200 Subject: [PATCH] Test class ReglesClassique.cs --- Sources/UnitTesting/ProgramUT.cs | 4 +- Sources/UnitTesting/ReglesClassiquesUT.cs | 65 +++++++++++++++++++++++ 2 files changed, 67 insertions(+), 2 deletions(-) diff --git a/Sources/UnitTesting/ProgramUT.cs b/Sources/UnitTesting/ProgramUT.cs index 4c8229d..b143926 100644 --- a/Sources/UnitTesting/ProgramUT.cs +++ b/Sources/UnitTesting/ProgramUT.cs @@ -15,11 +15,11 @@ namespace UnitTesting [Fact] public void TestPartieConfiguration() { - // Créer une instance de Partie + IRegles regle = new ReglesClassiques(); Partie maPartie = new Partie(new ReglesClassiques()); - // Attacher des gestionnaires d'événements simulés + bool demanderJoueurCalled = false; bool debutPartieCalled = false; bool nouveauTourCalled = false; diff --git a/Sources/UnitTesting/ReglesClassiquesUT.cs b/Sources/UnitTesting/ReglesClassiquesUT.cs index ef4b834..2071f94 100644 --- a/Sources/UnitTesting/ReglesClassiquesUT.cs +++ b/Sources/UnitTesting/ReglesClassiquesUT.cs @@ -149,6 +149,47 @@ namespace UnitTesting Assert.False(estTerminee); } + [Fact] + public void TestEstTermineeVictoire() + { + ReglesClassiques regles = new ReglesClassiques(); + Partie partie = new Partie(regles); + Joueur joueur1 = regles.AjouterJoueur("joueur1"); + Joueur joueur2 = regles.AjouterJoueur("joueur2"); + + regles.CommencerLaPartie(); + Plateau plateauj1 = regles.JoueurCourant().Plateau; + Type type = typeof(Plateau); + FieldInfo? fieldInfo = type.GetField("codeSecret", BindingFlags.NonPublic | BindingFlags.Instance); + Assert.NotNull(fieldInfo); + Code? codeSecret = (Code?)fieldInfo.GetValue(plateauj1); + Assert.NotNull(codeSecret); + regles.JoueurCourant().Plateau.AjouterCode(codeSecret); + bool estTerminee = regles.EstTerminee(); + Assert.True(estTerminee); + } + + [Fact] + public void TestEstTermineeToursMaximesAtteints() + { + ReglesClassiques regles = new ReglesClassiques(); + Partie partie = new Partie(regles); + regles.AjouterJoueur("joueur1"); + regles.AjouterJoueur("joueur2"); + regles.CommencerLaPartie(); + Code code = new Code([new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC), new Jeton(Couleur.JAUNE)]); + for (int i = 1; i <= regles.TourMaximum*regles.NbJoueursMaximum; i++) + { + regles.JoueurCourant().Plateau.AjouterCode(code); + regles.PasserLaMain(); + + } + bool estTerminee = regles.EstTerminee(); + Assert.True(estTerminee); + } + + + [Fact] public void TestGagnantsAucunGagnants() { @@ -162,5 +203,29 @@ namespace UnitTesting Assert.Empty(gagnants); } + [Fact] + public void TestGagnantsGagnants() + { + + ReglesClassiques regles = new ReglesClassiques(); + Partie partie = new Partie(regles); + + regles.AjouterJoueur("joueur1"); + regles.AjouterJoueur("joueur2"); + + regles.CommencerLaPartie(); + Plateau plateauj1 = regles.JoueurCourant().Plateau; + Type type = typeof(Plateau); + FieldInfo? fieldInfo = type.GetField("codeSecret", BindingFlags.NonPublic | BindingFlags.Instance); + Assert.NotNull(fieldInfo); + Code? codeSecret = (Code?)fieldInfo.GetValue(plateauj1); + Assert.NotNull(codeSecret); + regles.JoueurCourant().Plateau.AjouterCode(codeSecret); + var resulta = regles.Gagnants(); + Assert.Single(resulta); + Assert.Contains(regles.JoueurCourant(), resulta); + + } + } }