diff --git a/Sources/UnitTesting/JoueurUT.cs b/Sources/UnitTesting/JoueurUT.cs index 4165f16..78edd94 100644 --- a/Sources/UnitTesting/JoueurUT.cs +++ b/Sources/UnitTesting/JoueurUT.cs @@ -1,6 +1,9 @@ using CoreLibrary.Core; using CoreLibrary.Evenements; +using CoreLibrary.Exceptions; using CoreLibrary.Joueurs; +using CoreLibrary.Regles; +using CoreLibrary.Statistiques; using System.Reflection; using Xunit; @@ -33,5 +36,135 @@ namespace UnitTesting Assert.False(joueur.EstConnecte); } + [Fact] + public void TestQuandJoueurSeConnecter() + { + Joueur joueur1 = new Joueur("Joueur1"); + Joueur joueur2 = new Joueur("Joueur2"); + bool eventTriggered = false; + JoueurSeConnecterEventArgs? eventArgs = null; + + joueur1.JoueurSeConnecter += (sender, e) => + { + eventTriggered = true; + eventArgs = e; + }; + + MethodInfo? methodInfo = typeof(Joueur).GetMethod("QuandJoueurSeConnecter", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); + methodInfo?.Invoke(joueur1, new object[] { joueur2 }); + + Assert.True(eventTriggered); + Assert.NotNull(eventArgs); + Assert.Equal(joueur2, eventArgs?.Joueur); + } + + [Fact] + public void TestSeConnecterDeclencheEvenement() + { + Joueur joueur1 = new Joueur("Joueur1"); + Joueur joueur2 = new Joueur("Joueur2"); + bool eventTriggered = false; + JoueurSeConnecterEventArgs? eventArgs = null; + + joueur1.JoueurSeConnecter += (sender, e) => + { + eventTriggered = true; + eventArgs = e; + }; + + joueur1.SeConnecter(joueur2); + + Assert.True(eventTriggered); + Assert.NotNull(eventArgs); + Assert.Equal(joueur2, eventArgs?.Joueur); + } + + [Fact] + public void TestSeConnecterThrowException() + { + Joueur joueur = new Joueur("Joueur"); + joueur.SeConnecter(joueur); + + Assert.Throws(() => joueur.SeConnecter(joueur)); + } + + [Fact] + public void SeConnecter_MetAJourEstConnecte() + { + Joueur joueur = new Joueur("Joueur"); + joueur.SeConnecter(joueur); + + Assert.True(joueur.EstConnecte); + } + + [Fact] + public void TestToStringValide() + { + Joueur joueur = new Joueur("Joueur"); + string result = joueur.ToString(); + + Assert.Equal("Joueur1", result); + } + + [Fact] + public void TestToStringVide() + { + Joueur joueur = new Joueur(); + string result = joueur.ToString(); + + Assert.Equal("", result); + } + + [Fact] + public void TestStatistiqueNonDefinie() + { + Joueur joueur = new Joueur("Joueur"); + ReglesClassiques regles = new ReglesClassiques(); + Statistique statistique = new Statistique(); + + int result = joueur.Statistique(regles, statistique); + + Assert.Equal(0, result); + } + + [Fact] + public void TestStatistiqueDefinie() + { + Joueur joueur = new Joueur("Joueur"); + ReglesClassiques regles = new ReglesClassiques(); + Statistique statistique = new Statistique(); + joueur.IncrementerStatistique(regles, statistique); + + int result = joueur.Statistique(regles, statistique); + + Assert.Equal(1, result); + } + + [Fact] + public void TestIncrementerStatistiqueUn() + { + Joueur joueur = new Joueur("Joueur"); + ReglesClassiques regles = new ReglesClassiques(); + Statistique statistique = new Statistique(); + + joueur.IncrementerStatistique(regles, statistique); + int result = joueur.Statistique(regles, statistique); + + Assert.Equal(1, result); + } + + [Fact] + public void TestIncrementerStatistiqueDeux() + { + Joueur joueur = new Joueur("Joueur"); + ReglesClassiques regles = new ReglesClassiques(); + Statistique statistique = new Statistique(); + + joueur.IncrementerStatistique(regles, statistique); + joueur.IncrementerStatistique(regles, statistique); + int result = joueur.Statistique(regles, statistique); + + Assert.Equal(2, result); + } } }