|
|
|
@ -16,6 +16,25 @@ namespace UnitTesting
|
|
|
|
|
Assert.Equal("Règles classiques", new ReglesClassiques().Nom);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TestNbJoueur()
|
|
|
|
|
{
|
|
|
|
|
ReglesClassiques regles = new ReglesClassiques();
|
|
|
|
|
Assert.Equal(0, regles.NbJoueurs);
|
|
|
|
|
regles.AjouterJoueur("Bonjour");
|
|
|
|
|
Assert.Equal(1, regles.NbJoueurs);
|
|
|
|
|
regles.AjouterJoueur("Bonsoir");
|
|
|
|
|
Assert.Equal(2, regles.NbJoueurs);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void GenererCode()
|
|
|
|
|
{
|
|
|
|
|
ReglesClassiques regles = new ReglesClassiques();
|
|
|
|
|
Assert.Equal(new Code(4).NbJetons, regles.GenererCode().NbJetons);
|
|
|
|
|
Assert.Equal(4, regles.GenererCode().TailleMaximale());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TestJoueurCourantPartieNonCommencee()
|
|
|
|
|
{
|
|
|
|
@ -145,5 +164,93 @@ namespace UnitTesting
|
|
|
|
|
Assert.Single(gagnants);
|
|
|
|
|
Assert.Contains(regles.JoueurCourant().Item1, gagnants);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TestPerdants()
|
|
|
|
|
{
|
|
|
|
|
ReglesClassiques regles = new ReglesClassiques();
|
|
|
|
|
Partie partie = new Partie(regles);
|
|
|
|
|
|
|
|
|
|
regles.AjouterJoueur("joueur1");
|
|
|
|
|
regles.AjouterJoueur("joueur2");
|
|
|
|
|
|
|
|
|
|
regles.CommencerLaPartie();
|
|
|
|
|
|
|
|
|
|
Plateau plateauj1 = regles.JoueurCourant().Item2;
|
|
|
|
|
|
|
|
|
|
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().Item2.AjouterCode(codeSecret);
|
|
|
|
|
|
|
|
|
|
regles.PasserLaMain();
|
|
|
|
|
|
|
|
|
|
IEnumerable<Joueur> perdants = regles.Perdants();
|
|
|
|
|
Assert.Single(perdants);
|
|
|
|
|
Assert.Contains(regles.JoueurCourant().Item1, perdants);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void EstTermineeMaxTour()
|
|
|
|
|
{
|
|
|
|
|
ReglesClassiques regles = new ReglesClassiques();
|
|
|
|
|
regles.AjouterJoueur("1");
|
|
|
|
|
regles.AjouterJoueur("2");
|
|
|
|
|
regles.CommencerLaPartie();
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 24; ++i)
|
|
|
|
|
{
|
|
|
|
|
Plateau plateau = regles.JoueurCourant().Item2;
|
|
|
|
|
Code code = new Code(4);
|
|
|
|
|
code.AjouterJeton(new Jeton(Couleur.ROUGE));
|
|
|
|
|
code.AjouterJeton(new Jeton(Couleur.ROUGE));
|
|
|
|
|
code.AjouterJeton(new Jeton(Couleur.ROUGE));
|
|
|
|
|
code.AjouterJeton(new Jeton(Couleur.ROUGE));
|
|
|
|
|
plateau.AjouterCode(code);
|
|
|
|
|
|
|
|
|
|
regles.PasserLaMain();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Assert.True(regles.EstTerminee());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void EstTermineeNon()
|
|
|
|
|
{
|
|
|
|
|
ReglesClassiques regles = new ReglesClassiques();
|
|
|
|
|
regles.AjouterJoueur("1");
|
|
|
|
|
regles.AjouterJoueur("2");
|
|
|
|
|
regles.CommencerLaPartie();
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 12; ++i)
|
|
|
|
|
regles.PasserLaMain();
|
|
|
|
|
|
|
|
|
|
Assert.False(regles.EstTerminee());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void EstTermineeCodeTrouve()
|
|
|
|
|
{
|
|
|
|
|
ReglesClassiques regles = new ReglesClassiques();
|
|
|
|
|
regles.AjouterJoueur("1");
|
|
|
|
|
regles.AjouterJoueur("2");
|
|
|
|
|
regles.CommencerLaPartie();
|
|
|
|
|
|
|
|
|
|
Plateau plateauj1 = regles.JoueurCourant().Item2;
|
|
|
|
|
|
|
|
|
|
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().Item2.AjouterCode(codeSecret);
|
|
|
|
|
|
|
|
|
|
Assert.True(regles.EstTerminee());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|