From ff89de9bb58bfd6bfd44cabf3807ad845126c309 Mon Sep 17 00:00:00 2001 From: "nicolas.barbosa" Date: Thu, 6 Jun 2024 21:10:03 +0200 Subject: [PATCH] ajout de coverage manageur --- Sources/UnitTesting/ManageurUT.cs | 175 ++++++++++++++++++++++++++++++ 1 file changed, 175 insertions(+) diff --git a/Sources/UnitTesting/ManageurUT.cs b/Sources/UnitTesting/ManageurUT.cs index a2feb91..0e6443d 100644 --- a/Sources/UnitTesting/ManageurUT.cs +++ b/Sources/UnitTesting/ManageurUT.cs @@ -154,6 +154,34 @@ namespace UnitTesting Assert.NotEmpty(PartieDemanderJoueurJouer.GetInvocationList()); Assert.NotEmpty(PartiePasserLaMain.GetInvocationList()); Assert.NotEmpty(PartiePartieTerminee.GetInvocationList()); + } + + [Fact] + public void TestEcouterPartie2() + { + IPersistance persistance = new PersistanceStub(); + Manageur manageur = new Manageur(persistance); + + MethodInfo? infosMethode = typeof(Manageur).GetMethod("EcouterPartie", BindingFlags.NonPublic | BindingFlags.Instance); + Assert.NotNull(infosMethode); + + Partie partie = new Partie(new ReglesClassiques()); + + infosMethode.Invoke(manageur, [partie]); + + FieldInfo? PartiePartieTermineeInfos = typeof(Partie) + .GetField("PartiePartieTerminee", BindingFlags.Instance | BindingFlags.NonPublic); + + Assert.NotNull(PartiePartieTermineeInfos); + + EventHandler? PartiePartieTerminee = + PartiePartieTermineeInfos.GetValue(partie) as EventHandler; + + PartiePartieTerminee = + PartiePartieTermineeInfos.GetValue(partie) as EventHandler; + + Assert.NotNull(PartiePartieTerminee); + Assert.NotEmpty(PartiePartieTerminee.GetInvocationList()); Joueur celeste = manageur.DemanderJoueur("Céleste"); Robot robot = new Robot(); @@ -177,6 +205,153 @@ namespace UnitTesting Assert.Equal(0, celeste.Statistique(new ReglesClassiques(), Statistique.PartiePerdue)); } + [Fact] + public void TestEcouterPartie3() + { + IPersistance persistance = new PersistanceStub(); + Manageur manageur = new Manageur(persistance); + + MethodInfo? infosMethode = typeof(Manageur).GetMethod("EcouterPartie", BindingFlags.NonPublic | BindingFlags.Instance); + Assert.NotNull(infosMethode); + + Partie partie = new Partie(new ReglesClassiques()); + + infosMethode.Invoke(manageur, [partie]); + + FieldInfo? PartiePartieTermineeInfos = typeof(Partie) + .GetField("PartiePartieTerminee", BindingFlags.Instance | BindingFlags.NonPublic); + + Assert.NotNull(PartiePartieTermineeInfos); + + EventHandler? PartiePartieTerminee = + PartiePartieTermineeInfos.GetValue(partie) as EventHandler; + + PartiePartieTerminee = + PartiePartieTermineeInfos.GetValue(partie) as EventHandler; + + Assert.NotNull(PartiePartieTerminee); + Assert.NotEmpty(PartiePartieTerminee.GetInvocationList()); + + Joueur celeste = manageur.DemanderJoueur("Céleste"); + Robot robot = new Robot(); + + Assert.Equal(0, celeste.Statistique(new ReglesClassiques(), Statistique.CoupMoyen)); + Assert.Equal(0, celeste.Statistique(new ReglesClassiques(), Statistique.PartieGagnee)); + Assert.Equal(0, celeste.Statistique(new ReglesClassiques(), Statistique.PartieEgalite)); + Assert.Equal(0, celeste.Statistique(new ReglesClassiques(), Statistique.PartiePerdue)); + + int tour = 10; + IReadOnlyList gagnants = [robot.Nom]; + IReadOnlyList perdants = [celeste.Nom]; + + PartiePartieTerminee.Invoke(null, new PartiePartieTermineeEventArgs( + tour, gagnants, perdants + )); + + Assert.Equal(tour, celeste.Statistique(new ReglesClassiques(), Statistique.CoupMoyen)); + Assert.Equal(0, celeste.Statistique(new ReglesClassiques(), Statistique.PartieGagnee)); + Assert.Equal(0, celeste.Statistique(new ReglesClassiques(), Statistique.PartieEgalite)); + Assert.Equal(1, celeste.Statistique(new ReglesClassiques(), Statistique.PartiePerdue)); + } + + [Fact] + public void TestEcouterPartie4() + { + IPersistance persistance = new PersistanceStub(); + Manageur manageur = new Manageur(persistance); + + MethodInfo? infosMethode = typeof(Manageur).GetMethod("EcouterPartie", BindingFlags.NonPublic | BindingFlags.Instance); + Assert.NotNull(infosMethode); + + Partie partie = new Partie(new ReglesClassiques()); + + infosMethode.Invoke(manageur, [partie]); + + FieldInfo? PartiePartieTermineeInfos = typeof(Partie) + .GetField("PartiePartieTerminee", BindingFlags.Instance | BindingFlags.NonPublic); + + Assert.NotNull(PartiePartieTermineeInfos); + + EventHandler? PartiePartieTerminee = + PartiePartieTermineeInfos.GetValue(partie) as EventHandler; + + PartiePartieTerminee = + PartiePartieTermineeInfos.GetValue(partie) as EventHandler; + + Assert.NotNull(PartiePartieTerminee); + Assert.NotEmpty(PartiePartieTerminee.GetInvocationList()); + + Joueur celeste = manageur.DemanderJoueur("Céleste"); + Robot robot = new Robot(); + + Assert.Equal(0, celeste.Statistique(new ReglesClassiques(), Statistique.CoupMoyen)); + Assert.Equal(0, celeste.Statistique(new ReglesClassiques(), Statistique.PartieGagnee)); + Assert.Equal(0, celeste.Statistique(new ReglesClassiques(), Statistique.PartieEgalite)); + Assert.Equal(0, celeste.Statistique(new ReglesClassiques(), Statistique.PartiePerdue)); + + int tour = 10; + IReadOnlyList gagnants = [robot.Nom, celeste.Nom]; + IReadOnlyList perdants = []; + + PartiePartieTerminee.Invoke(null, new PartiePartieTermineeEventArgs( + tour, gagnants, perdants + )); + + Assert.Equal(tour, celeste.Statistique(new ReglesClassiques(), Statistique.CoupMoyen)); + Assert.Equal(0, celeste.Statistique(new ReglesClassiques(), Statistique.PartieGagnee)); + Assert.Equal(1, celeste.Statistique(new ReglesClassiques(), Statistique.PartieEgalite)); + Assert.Equal(0, celeste.Statistique(new ReglesClassiques(), Statistique.PartiePerdue)); + } + + [Fact] + public void TestEcouterPartie5() + { + IPersistance persistance = new PersistanceStub(); + Manageur manageur = new Manageur(persistance); + + MethodInfo? infosMethode = typeof(Manageur).GetMethod("EcouterPartie", BindingFlags.NonPublic | BindingFlags.Instance); + Assert.NotNull(infosMethode); + + Partie partie = new Partie(new ReglesClassiques()); + + infosMethode.Invoke(manageur, [partie]); + + FieldInfo? PartiePartieTermineeInfos = typeof(Partie) + .GetField("PartiePartieTerminee", BindingFlags.Instance | BindingFlags.NonPublic); + + Assert.NotNull(PartiePartieTermineeInfos); + + EventHandler? PartiePartieTerminee = + PartiePartieTermineeInfos.GetValue(partie) as EventHandler; + + PartiePartieTerminee = + PartiePartieTermineeInfos.GetValue(partie) as EventHandler; + + Assert.NotNull(PartiePartieTerminee); + Assert.NotEmpty(PartiePartieTerminee.GetInvocationList()); + + Joueur celeste = manageur.DemanderJoueur("Céleste"); + Robot robot = new Robot(); + + Assert.Equal(0, celeste.Statistique(new ReglesClassiques(), Statistique.CoupMoyen)); + Assert.Equal(0, celeste.Statistique(new ReglesClassiques(), Statistique.PartieGagnee)); + Assert.Equal(0, celeste.Statistique(new ReglesClassiques(), Statistique.PartieEgalite)); + Assert.Equal(0, celeste.Statistique(new ReglesClassiques(), Statistique.PartiePerdue)); + + int tour = 10; + IReadOnlyList gagnants = []; + IReadOnlyList perdants = [robot.Nom, celeste.Nom]; + + PartiePartieTerminee.Invoke(null, new PartiePartieTermineeEventArgs( + tour, gagnants, perdants + )); + + Assert.Equal(tour, celeste.Statistique(new ReglesClassiques(), Statistique.CoupMoyen)); + Assert.Equal(0, celeste.Statistique(new ReglesClassiques(), Statistique.PartieGagnee)); + Assert.Equal(0, celeste.Statistique(new ReglesClassiques(), Statistique.PartieEgalite)); + Assert.Equal(1, celeste.Statistique(new ReglesClassiques(), Statistique.PartiePerdue)); + } + [Fact] public void TestDemanderJoueurExistant() {