écoute de partie
continuous-integration/drone/push Build is passing Details

master
Céleste BARBOSA 11 months ago
parent 789db6f668
commit 3cb4826ebd

@ -9,6 +9,8 @@ using CoreLibrary.Joueurs;
using CoreLibrary.Regles;
using CoreLibrary.Evenements;
using CoreLibrary.Exceptions;
using System.Diagnostics.Tracing;
using Xunit.Abstractions;
namespace UnitTesting
@ -56,15 +58,15 @@ namespace UnitTesting
plateaux.Add(new Plateau(4, 10));
}
if(tourField != null)
if (tourField != null)
tourField.SetValue(partieOriginale, 5);
if (termineField != null)
termineField.SetValue(partieOriginale, false);
var partieCopiee = new Partie(partieOriginale);
@ -107,7 +109,7 @@ namespace UnitTesting
}
}
}
}
@ -118,7 +120,7 @@ namespace UnitTesting
Partie partie = new Partie(regle);
FieldInfo? joueursField = typeof(Partie).GetField("joueurs", BindingFlags.NonPublic | BindingFlags.Instance);
if(joueursField != null)
if (joueursField != null)
{
Dictionary<string, bool>? joueurs = joueursField.GetValue(partie) as Dictionary<string, bool>;
if (joueurs != null)
@ -130,7 +132,7 @@ namespace UnitTesting
partie.PartieDemanderJoueur += (sender, e) => demanderJoueurCalled = true;
partie.Jouer();
Assert.True(demanderJoueurCalled);
}
}
}
[Fact]
@ -205,8 +207,8 @@ namespace UnitTesting
if (joueursField != null)
{
Dictionary<string,bool>? joueurs = joueursField.GetValue(partie) as Dictionary<string, bool>;
if(joueurs != null)
Dictionary<string, bool>? joueurs = joueursField.GetValue(partie) as Dictionary<string, bool>;
if (joueurs != null)
Assert.True(joueurs.ContainsKey(joueur1.Nom));
}
@ -214,7 +216,7 @@ namespace UnitTesting
if (plateauxField != null)
{
List<Plateau>? plateaux = plateauxField.GetValue(partie) as List<Plateau>;
if(plateaux != null)
if (plateaux != null)
Assert.Single(plateaux);
}
@ -224,15 +226,15 @@ namespace UnitTesting
demanderJoueurAppelée = false;
methodInfo?.Invoke(partie, new object?[] { null, joueur2EventArgs });
if(joueursField != null)
if (joueursField != null)
{
Dictionary<string, bool>? joueurs = joueursField.GetValue(partie) as Dictionary<string, bool>;
if(joueurs != null)
if (joueurs != null)
{
Assert.Equal(2, joueurs.Count);
Assert.True(joueurs.ContainsKey(joueur2.Nom));
}
}
if (plateauxField != null)
@ -262,7 +264,8 @@ namespace UnitTesting
bool appelee = false;
partie.PartieDemanderJoueur += (sender, e) => {
partie.PartieDemanderJoueur += (sender, e) =>
{
appelee = true;
if (e.Indice == 1)
@ -284,7 +287,8 @@ namespace UnitTesting
bool appelee = false;
partie.PartieDemanderJoueur += (sender, e) => {
partie.PartieDemanderJoueur += (sender, e) =>
{
appelee = true;
Assert.Throws<NomJoueurInterditException>(() => e.JoueurDemande.SeConnecter(new Joueur("Robot")));
@ -304,7 +308,8 @@ namespace UnitTesting
Assert.NotNull(partie.Robots);
Assert.Empty(partie.Robots);
partie.PartieDemanderJoueur += (sender, e) => {
partie.PartieDemanderJoueur += (sender, e) =>
{
e.JoueurDemande.SeConnecter(new Robot());
};
@ -395,10 +400,10 @@ namespace UnitTesting
MethodInfo? methodInfo = typeof(Partie).GetMethod("NouveauTour", BindingFlags.NonPublic | BindingFlags.Instance);
methodInfo?.Invoke(partie, null);
Assert.True(demanderJoueurJouerEventTriggered);
Assert.True(nouveauTourEventTriggered);
Assert.True(nouveauTourEventTriggered);
}
[Fact]
@ -407,7 +412,7 @@ namespace UnitTesting
IRegles regle = new ReglesClassiques();
Partie partie = new Partie(regle);
FieldInfo? joueursField = typeof(Partie).GetField("joueurs", BindingFlags.NonPublic | BindingFlags.Instance);
FieldInfo? plateauxField = typeof(Partie).GetField("plateaux", BindingFlags.NonPublic | BindingFlags.Instance);
if (joueursField != null && plateauxField != null)
@ -423,17 +428,17 @@ namespace UnitTesting
}
}
Plateau plateau = new Plateau(regle.TailleCode, regle.NbTour);
PlateauAjouterCodeEventArgs eventArgs = new PlateauAjouterCodeEventArgs(plateau);
MethodInfo? methodInfo = typeof(Partie).GetMethod("PlateauAjouterCode", BindingFlags.NonPublic | BindingFlags.Instance);
methodInfo?.Invoke(partie, new object?[] { null, eventArgs });
FieldInfo? courantField = typeof(Partie).GetField("courant", BindingFlags.NonPublic | BindingFlags.Instance);
if(courantField != null)
if (courantField != null)
{
int? courant = ((int?)courantField.GetValue(partie)).GetValueOrDefault();
@ -441,16 +446,16 @@ namespace UnitTesting
Assert.Equal(0, partie.Tour);
}
methodInfo?.Invoke(partie, new object?[] { null, eventArgs });
if(courantField != null)
if (courantField != null)
{
int courant2 = ((int?)courantField.GetValue(partie)).GetValueOrDefault();
Assert.Equal(0, courant2);
Assert.Equal(1, partie.Tour);
}
}
[Fact]
@ -520,7 +525,7 @@ namespace UnitTesting
victoireProperty.SetValue(plateau1, true);
}
MethodInfo? methodInfo = typeof(Partie).GetMethod("PartieTerminee", BindingFlags.NonPublic | BindingFlags.Instance);
methodInfo?.Invoke(partie, null);
@ -536,5 +541,74 @@ namespace UnitTesting
}
}
}
[Fact]
public void TestPartieEcoute()
{
Partie partie = new Partie(new ReglesClassiques());
FieldInfo? joueursInfo = typeof(Partie).GetField("joueurs", BindingFlags.NonPublic | BindingFlags.Instance);
FieldInfo? plateauxInfo = typeof(Partie).GetField("plateaux", BindingFlags.NonPublic | BindingFlags.Instance);
Assert.NotNull(joueursInfo);
Assert.NotNull(plateauxInfo);
Dictionary<string, bool>? joueurs = joueursInfo.GetValue(partie) as Dictionary<string, bool>;
List<Plateau>? plateaux = plateauxInfo.GetValue(partie) as List<Plateau>;
Assert.NotNull(joueurs);
Assert.NotNull(plateaux);
joueurs.Add("Céleste", true);
plateaux.Add(new Plateau(4, 12));
MethodInfo? QuandPartieDemanderJoueurInfo = typeof(Partie).GetMethod("QuandPartieDemanderJoueur", BindingFlags.NonPublic | BindingFlags.Instance);
MethodInfo? QuandPartieDebutPartieInfo = typeof(Partie).GetMethod("QuandPartieDebutPartie", BindingFlags.NonPublic | BindingFlags.Instance);
MethodInfo? QuandPartieDemanderJoueurJouerInfo = typeof(Partie).GetMethod("QuandPartieDemanderJoueurJouer", BindingFlags.NonPublic | BindingFlags.Instance);
MethodInfo? QuandPartieNouveauTourInfo = typeof(Partie).GetMethod("QuandPartieNouveauTour", BindingFlags.NonPublic | BindingFlags.Instance);
MethodInfo? QuandPartiePasserLaMainInfo = typeof(Partie).GetMethod("QuandPartiePasserLaMain", BindingFlags.NonPublic | BindingFlags.Instance);
MethodInfo? QuandPartiePartieTermineeInfo = typeof(Partie).GetMethod("QuandPartiePartieTerminee", BindingFlags.NonPublic | BindingFlags.Instance);
Assert.NotNull(QuandPartieDemanderJoueurInfo);
Assert.NotNull(QuandPartieDebutPartieInfo);
Assert.NotNull(QuandPartieDemanderJoueurJouerInfo);
Assert.NotNull(QuandPartieNouveauTourInfo);
Assert.NotNull(QuandPartiePasserLaMainInfo);
Assert.NotNull(QuandPartiePartieTermineeInfo);
QuandPartieDemanderJoueurInfo?.Invoke(partie, [new Joueur()]);
QuandPartieDebutPartieInfo?.Invoke(partie, []);
QuandPartieDemanderJoueurJouerInfo?.Invoke(partie, [new Code(4)]);
QuandPartieNouveauTourInfo?.Invoke(partie, [new Code(4)]);
QuandPartiePasserLaMainInfo?.Invoke(partie, []);
QuandPartiePartieTermineeInfo?.Invoke(partie, [new List<string>(["Céleste"]), new List<string>(["Robot 1"])]);
bool appel1 = false;
partie.PartieDemanderJoueur += (sender, e) => appel1 = true;
bool appel2 = false;
partie.PartieDebutPartie += (sender, e) => appel2 = true;
bool appel3 = false;
partie.PartieDemanderJoueurJouer += (sender, e) => appel3 = true;
bool appel4 = false;
partie.PartieNouveauTour += (sender, e) => appel4 = true;
bool appel5 = false;
partie.PartiePasserLaMain += (sender, e) => appel5 = true;
bool appel6 = false;
partie.PartiePartieTerminee += (sender, e) => appel6 = true;
QuandPartieDemanderJoueurInfo?.Invoke(partie, [new Joueur()]);
QuandPartieDebutPartieInfo?.Invoke(partie, []);
QuandPartieDemanderJoueurJouerInfo?.Invoke(partie, [new Code(4)]);
QuandPartieNouveauTourInfo?.Invoke(partie, [new Code(4)]);
QuandPartiePasserLaMainInfo?.Invoke(partie, []);
QuandPartiePartieTermineeInfo?.Invoke(partie, [new List<string>(["Céleste"]), new List<string>(["Robot 1"])]);
Assert.True(appel1);
Assert.True(appel2);
Assert.True(appel3);
Assert.True(appel4);
Assert.True(appel5);
Assert.True(appel6);
}
}
}

Loading…
Cancel
Save