Correction des tests, avec merge master
continuous-integration/drone/push Build is passing Details

master
Céleste BARBOSA 12 months ago
parent a513ba8447
commit d63040824b

@ -36,7 +36,7 @@ namespace CoreLibrary
/// <exception cref="TailleCodeException">Levée lorsque la collection de jetons spécifiée est vide.</exception> /// <exception cref="TailleCodeException">Levée lorsque la collection de jetons spécifiée est vide.</exception>
public Code(IEnumerable<Jeton> jetons) public Code(IEnumerable<Jeton> jetons)
{ {
if (jetons.Any()) if (!jetons.Any())
{ {
throw new TailleCodeException(jetons.Count()); throw new TailleCodeException(jetons.Count());
} }
@ -85,7 +85,7 @@ namespace CoreLibrary
/// <exception cref="IndiceCodeException">Levée lorsque l'indice est supérieur à la taille maximale du code, inférieur à 0 ou qu'il n'y a pas de jeton à l'indice spécifié</exception> /// <exception cref="IndiceCodeException">Levée lorsque l'indice est supérieur à la taille maximale du code, inférieur à 0 ou qu'il n'y a pas de jeton à l'indice spécifié</exception>
public Jeton RecupererJeton(int indice) public Jeton RecupererJeton(int indice)
{ {
if(indice < 0 || indice > TailleMaximale()) if(indice < 0 || indice >= TailleMaximale())
throw new IndiceCodeException(indice, NbJetons-1); throw new IndiceCodeException(indice, NbJetons-1);
Jeton? jeton = lesJetons[indice]; Jeton? jeton = lesJetons[indice];
@ -136,18 +136,13 @@ namespace CoreLibrary
Indicateur[] indicateurs = []; Indicateur[] indicateurs = [];
/// Vérifie si les deux codes sont complets if (!autreCode.EstComplet())
if (!EstComplet() || !autreCode.EstComplet()) return indicateurs;
return indicateurs;
Jeton?[] mesJetons = Jetons().ToArray();
Jeton?[] sesJetons = autreCode.Jetons().ToArray();
List<Jeton?> mesJetons = new List<Jeton?>(Jetons()); for (int i = 0; i < mesJetons.Length; ++i)
List<Jeton?> sesJetons = new List<Jeton?>(autreCode.Jetons());
/// Compare les jetons pour détecter les ceux à la bonnes places
/// S'ils sont à la bonne place alors ils sont enlever du tableau et un indicateur BONNEPLACE est ajouter au tableau des indicateurs.
for (int i = 0; i < mesJetons.Count; ++i)
{ {
Jeton? monJeton = mesJetons[i]; Jeton? monJeton = mesJetons[i];
Jeton? sonJeton = sesJetons[i]; Jeton? sonJeton = sesJetons[i];
@ -160,19 +155,26 @@ namespace CoreLibrary
} }
} }
/// Compare les jetons pour détecter ceux qui ont la bonne couleur.
/// S'ils ont la bonne couleur alors ils sont enlever du tableau et un indicateur BONNECOULEUR est ajouter au tableau des indicateurs.
for (int i = 0; i < sesJetons.Count; ++i) for (int i = 0; i < sesJetons.Length; ++i)
{ {
Jeton? sonJeton = sesJetons[i]; Jeton? sonJeton = sesJetons[i];
if (sonJeton.HasValue && mesJetons.Contains(sonJeton.Value)) if (sonJeton.HasValue)
{ {
indicateurs = indicateurs.Append(Indicateur.BONNECOULEUR).ToArray(); for (int j = 0; j < mesJetons.Length; ++j)
mesJetons[mesJetons.IndexOf(sonJeton.Value)] = null; {
sesJetons[i] = null; Jeton? monJeton = mesJetons[j];
break;
if (monJeton.HasValue && sonJeton.Value.Couleur.Equals(monJeton.Value.Couleur))
{
indicateurs = indicateurs.Append(Indicateur.BONNECOULEUR).ToArray();
mesJetons[j] = null;
sesJetons[i] = null;
break;
}
}
} }
} }

@ -1,14 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CoreLibrary
{
public class CodeTailleInvalideException : Exception
{
public CodeTailleInvalideException() : base("La taille du tableau de code est inférieure ou égale à 0")
{ }
}
}

@ -1,5 +1,5 @@
using CoreLibrary; using CoreLibrary;
using System.Linq; using CoreLibrary.Exceptions;
using Xunit; using Xunit;
namespace UnitTesting namespace UnitTesting
@ -18,8 +18,8 @@ namespace UnitTesting
[Fact] [Fact]
public void TestConstructorInvalidArguments() public void TestConstructorInvalidArguments()
{ {
Assert.Throws<CodeTailleInvalideException>(() => new Code(0)); Assert.Throws<TailleCodeException>(() => new Code(0));
Assert.Throws<CodeTailleInvalideException>(() => new Code(-1)); Assert.Throws<TailleCodeException>(() => new Code(-1));
} }
[Fact] [Fact]
@ -36,7 +36,7 @@ namespace UnitTesting
[Fact] [Fact]
public void TestSecondConstructorInvalidArguments() public void TestSecondConstructorInvalidArguments()
{ {
Assert.Throws<CodeTailleInvalideException>(() => new Code([])); Assert.Throws<TailleCodeException>(() => new Code([]));
} }
[Fact] [Fact]
@ -53,7 +53,7 @@ namespace UnitTesting
public void TestAjouterJetonInvalid() public void TestAjouterJetonInvalid()
{ {
Code code = new Code([new Jeton(Couleur.NOIR)]); Code code = new Code([new Jeton(Couleur.NOIR)]);
Assert.Throws<CodeTableauLesJetonsCompletException>(() => code.AjouterJeton(new Jeton(Couleur.ROUGE))); Assert.Throws<CodeCompletException>(() => code.AjouterJeton(new Jeton(Couleur.ROUGE)));
} }
[Fact] [Fact]
@ -68,7 +68,7 @@ namespace UnitTesting
public void TestSupprimerDernierJetonInvalid() public void TestSupprimerDernierJetonInvalid()
{ {
Code code = new Code(4); Code code = new Code(4);
Assert.Throws<CodeTableauLesJetonsVideException>(() => code.SupprimerDernierJeton()); Assert.Throws<CodeVideException>(() => code.SupprimerDernierJeton());
} }
[Fact] [Fact]
@ -84,9 +84,8 @@ namespace UnitTesting
public void TestRecupererJetonInvalid() public void TestRecupererJetonInvalid()
{ {
Code code = new Code(4); Code code = new Code(4);
Assert.Throws<CodeIndiceHorsDePorteeException>(() => code.RecupererJeton(-1)); Assert.Throws<IndiceCodeException>(() => code.RecupererJeton(-1));
Assert.Throws<CodeIndiceHorsDePorteeException>(() => code.RecupererJeton(5)); Assert.Throws<IndiceCodeException>(() => code.RecupererJeton(4));
Assert.Throws<CodeJetonNullException>(() => code.RecupererJeton(2));
} }
[Fact] [Fact]
@ -193,15 +192,6 @@ namespace UnitTesting
Assert.Empty(indicateurs); Assert.Empty(indicateurs);
} }
[Fact]
public void TestComparerInvalid()
{
Code code = new Code([new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC)]);
Code autreCode = new Code(3);
Assert.Throws<CodeTableauLesJetonsIncompletException>(() => code.Comparer(autreCode));
}
} }
} }

@ -1,4 +1,5 @@
using CoreLibrary; using CoreLibrary;
using CoreLibrary.Exceptions;
using System.Linq; using System.Linq;
using Xunit; using Xunit;
@ -18,7 +19,7 @@ namespace UnitTesting
[Fact] [Fact]
public void TestConstructorInvalid() public void TestConstructorInvalid()
{ {
Assert.Throws<PlateauTailleCodeException>(() => new Plateau(0, 10)); Assert.Throws<TailleCodeException>(() => new Plateau(0, 10));
} }
[Fact] [Fact]
@ -65,7 +66,7 @@ namespace UnitTesting
Plateau plateau = new Plateau(4, 10); Plateau plateau = new Plateau(4, 10);
Code code = new Code([new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC), new Jeton(Couleur.JAUNE), new Jeton(Couleur.BLANC), new Jeton(Couleur.JAUNE)]); Code code = new Code([new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC), new Jeton(Couleur.JAUNE), new Jeton(Couleur.BLANC), new Jeton(Couleur.JAUNE)]);
Assert.Throws<PlateauTailleCodeException>(() => plateau.AjouterCode(code)); Assert.Throws<CodeInvalideException>(() => plateau.AjouterCode(code));
} }
[Fact] [Fact]
@ -74,7 +75,7 @@ namespace UnitTesting
Plateau plateau = new Plateau(4, 10); Plateau plateau = new Plateau(4, 10);
Code code = new Code(4); Code code = new Code(4);
Assert.Throws<PlateauCodeIncompletException>(() => plateau.AjouterCode(code)); Assert.Throws<CodeIncompletException>(() => plateau.AjouterCode(code));
} }
[Fact] [Fact]

@ -1,4 +1,5 @@
using CoreLibrary; using CoreLibrary;
using CoreLibrary.Exceptions;
using Xunit; using Xunit;
namespace UnitTesting namespace UnitTesting
@ -11,7 +12,7 @@ namespace UnitTesting
ReglesClassiques regles = new ReglesClassiques(); ReglesClassiques regles = new ReglesClassiques();
Assert.NotNull(regles); Assert.NotNull(regles);
//Assert.Equal(2, regles.NbJoueurs); Assert.Equal(0, regles.NbJoueurs);
Assert.Equal(2, regles.NbJoueursMaximum); Assert.Equal(2, regles.NbJoueursMaximum);
} }
@ -43,7 +44,7 @@ namespace UnitTesting
public void TestJoueurCourantNoPlayer() public void TestJoueurCourantNoPlayer()
{ {
ReglesClassiques regles = new ReglesClassiques(); ReglesClassiques regles = new ReglesClassiques();
Assert.Throws<ReglesClassiquesJoueurCourantNull>(() => regles.JoueurCourant()); Assert.Throws<PartieNonCommenceeException>(() => regles.JoueurCourant());
} }
[Fact] [Fact]
@ -66,7 +67,7 @@ namespace UnitTesting
public void TestPasserLaMainInvalid() public void TestPasserLaMainInvalid()
{ {
ReglesClassiques regles = new ReglesClassiques(); ReglesClassiques regles = new ReglesClassiques();
Assert.Throws<ReglesClassiquesJoueurCourantNull>(() => regles.PasserLaMain()); Assert.Throws<PartieNonCommenceeException>(() => regles.PasserLaMain());
} }
[Fact] [Fact]

Loading…
Cancel
Save