|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
using CoreLibrary.Core;
|
|
|
|
|
using CoreLibrary.Exceptions;
|
|
|
|
|
using System.Collections.ObjectModel;
|
|
|
|
|
using Xunit;
|
|
|
|
|
|
|
|
|
|
namespace UnitTesting
|
|
|
|
@ -12,7 +13,9 @@ namespace UnitTesting
|
|
|
|
|
Code code = new Code(4);
|
|
|
|
|
Assert.NotNull(code);
|
|
|
|
|
Assert.Empty(code.Jetons);
|
|
|
|
|
Assert.Equal(0, code.NbJetons);
|
|
|
|
|
Assert.Equal(0, code.Taille);
|
|
|
|
|
Assert.False(code.Complet);
|
|
|
|
|
Assert.True(code.Vide);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
@ -22,46 +25,35 @@ namespace UnitTesting
|
|
|
|
|
Assert.Throws<TailleCodeException>(() => new Code(-1));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TestDeuxiemeConstructeurValide()
|
|
|
|
|
{
|
|
|
|
|
Jeton[] jetons = [new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLEU)];
|
|
|
|
|
|
|
|
|
|
Code code = new Code(jetons);
|
|
|
|
|
Assert.NotNull(code);
|
|
|
|
|
Assert.Equal(3, code.Jetons.Count());
|
|
|
|
|
Assert.Equal(3, code.NbJetons);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TestDeuxiemeConstructeurInvalide()
|
|
|
|
|
{
|
|
|
|
|
Assert.Throws<TailleCodeException>(() => new Code([]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TestAjouterJetonValide()
|
|
|
|
|
{
|
|
|
|
|
Jeton jeton = new Jeton(Couleur.JAUNE);
|
|
|
|
|
Jeton jeton = new Jeton(Couleur.Jaune);
|
|
|
|
|
Code code = new Code(3);
|
|
|
|
|
code.AjouterJeton(jeton);
|
|
|
|
|
Assert.Equal(1, code.NbJetons);
|
|
|
|
|
Assert.Equal(1, code.Taille);
|
|
|
|
|
Assert.Equal(jeton, code.Jetons.ElementAt(0));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TestAjouterJetonInvalide()
|
|
|
|
|
{
|
|
|
|
|
Code code = new Code([new Jeton(Couleur.NOIR)]);
|
|
|
|
|
Assert.Throws<CodeCompletException>(() => code.AjouterJeton(new Jeton(Couleur.ROUGE)));
|
|
|
|
|
{
|
|
|
|
|
Jeton jeton = new Jeton(Couleur.Jaune);
|
|
|
|
|
Code code = new Code(3);
|
|
|
|
|
code.AjouterJeton(jeton);
|
|
|
|
|
Assert.Throws<CodeCompletException>(() => code.AjouterJeton(new Jeton(Couleur.Rouge)));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TestSupprimerDernierJetonValide()
|
|
|
|
|
{
|
|
|
|
|
Code code = new Code([new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC)]);
|
|
|
|
|
Jeton jeton = new Jeton(Couleur.Rouge);
|
|
|
|
|
Code code = new Code(3);
|
|
|
|
|
code.AjouterJeton(jeton);
|
|
|
|
|
code.AjouterJeton(jeton);
|
|
|
|
|
code.AjouterJeton(jeton);
|
|
|
|
|
code.SupprimerDernierJeton();
|
|
|
|
|
Assert.Equal(2, code.NbJetons);
|
|
|
|
|
Assert.Equal(2, code.Taille);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
@ -74,8 +66,12 @@ namespace UnitTesting
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TestRecupererJetonValide()
|
|
|
|
|
{
|
|
|
|
|
Code code = new Code([new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC)]);
|
|
|
|
|
Jeton jetonAttendu = new Jeton(Couleur.BLEU);
|
|
|
|
|
Jeton jeton1 = new Jeton(Couleur.Rouge);
|
|
|
|
|
Jeton jeton2 = new Jeton(Couleur.Bleu);
|
|
|
|
|
Code code = new Code(3);
|
|
|
|
|
code.AjouterJeton(jeton1);
|
|
|
|
|
code.AjouterJeton(jeton2);
|
|
|
|
|
Jeton jetonAttendu = new Jeton(Couleur.Bleu);
|
|
|
|
|
Jeton jeton = code.RecupererJeton(1);
|
|
|
|
|
Assert.Equal(jetonAttendu.Couleur, jeton.Couleur);
|
|
|
|
|
}
|
|
|
|
@ -98,16 +94,19 @@ namespace UnitTesting
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TestJetonsValide()
|
|
|
|
|
{
|
|
|
|
|
Jeton[] jetonsAttendus = [new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLEU)];
|
|
|
|
|
Code code = new Code(jetonsAttendus);
|
|
|
|
|
IEnumerable<Jeton?> lesJetons = code.Jetons;
|
|
|
|
|
Jeton[] jetonsAttendus = [new Jeton(Couleur.Rouge), new Jeton(Couleur.Bleu), new Jeton(Couleur.Bleu)];
|
|
|
|
|
Code code = new Code(3);
|
|
|
|
|
code.AjouterJeton(jetonsAttendus[0]);
|
|
|
|
|
code.AjouterJeton(jetonsAttendus[1]);
|
|
|
|
|
code.AjouterJeton(jetonsAttendus[2]);
|
|
|
|
|
ObservableCollection<Jeton> lesJetons = code.Jetons;
|
|
|
|
|
|
|
|
|
|
Assert.Equal(jetonsAttendus.Length, lesJetons.Count());
|
|
|
|
|
|
|
|
|
|
int index = 0;
|
|
|
|
|
foreach (Jeton jetonAttendu in jetonsAttendus)
|
|
|
|
|
{
|
|
|
|
|
Assert.Equal(jetonAttendu.Couleur, lesJetons.ElementAt(index)?.Couleur);
|
|
|
|
|
Assert.Equal(jetonAttendu.Couleur, lesJetons.ElementAt(index).Couleur);
|
|
|
|
|
index++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -115,8 +114,12 @@ namespace UnitTesting
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TestEstCompletValide()
|
|
|
|
|
{
|
|
|
|
|
Code code = new Code([new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC)]);
|
|
|
|
|
bool estComplet = code.EstComplet();
|
|
|
|
|
Jeton[] jetons = [new Jeton(Couleur.Rouge), new Jeton(Couleur.Bleu), new Jeton(Couleur.Blanc)];
|
|
|
|
|
Code code = new Code(3);
|
|
|
|
|
code.AjouterJeton(jetons[0]);
|
|
|
|
|
code.AjouterJeton(jetons[1]);
|
|
|
|
|
code.AjouterJeton(jetons[2]);
|
|
|
|
|
bool estComplet = code.Complet;
|
|
|
|
|
Assert.True(estComplet);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -124,16 +127,19 @@ namespace UnitTesting
|
|
|
|
|
public void TestEstCompletInvalide()
|
|
|
|
|
{
|
|
|
|
|
Code code = new Code(3);
|
|
|
|
|
bool estComplet = code.EstComplet();
|
|
|
|
|
bool estComplet = code.Complet;
|
|
|
|
|
Assert.False(estComplet);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TestTailleMaximaleValide()
|
|
|
|
|
{
|
|
|
|
|
Jeton[] jetons = [new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLEU)];
|
|
|
|
|
Code code = new Code(jetons);
|
|
|
|
|
int tailleMaximale = code.NbJetonsMax;
|
|
|
|
|
Jeton[] jetons = [new Jeton(Couleur.Rouge), new Jeton(Couleur.Bleu), new Jeton(Couleur.Bleu)];
|
|
|
|
|
Code code = new Code(3);
|
|
|
|
|
code.AjouterJeton(jetons[0]);
|
|
|
|
|
code.AjouterJeton(jetons[1]);
|
|
|
|
|
code.AjouterJeton(jetons[2]);
|
|
|
|
|
int tailleMaximale = code.TailleMax;
|
|
|
|
|
|
|
|
|
|
Assert.Equal(jetons.Length, tailleMaximale);
|
|
|
|
|
}
|
|
|
|
@ -141,81 +147,71 @@ namespace UnitTesting
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TestComparerValide()
|
|
|
|
|
{
|
|
|
|
|
Code code = new Code([new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC)]);
|
|
|
|
|
Code autreCode = new Code([new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC)]);
|
|
|
|
|
Jeton[] jetons1 = [new Jeton(Couleur.Rouge), new Jeton(Couleur.Bleu), new Jeton(Couleur.Blanc)];
|
|
|
|
|
Code code1 = new Code(3);
|
|
|
|
|
code1.AjouterJeton(jetons1[0]);
|
|
|
|
|
code1.AjouterJeton(jetons1[1]);
|
|
|
|
|
code1.AjouterJeton(jetons1[2]);
|
|
|
|
|
|
|
|
|
|
Jeton[] jetons2 = [new Jeton(Couleur.Rouge), new Jeton(Couleur.Bleu), new Jeton(Couleur.Blanc)];
|
|
|
|
|
Code code2 = new Code(3);
|
|
|
|
|
code2.AjouterJeton(jetons2[0]);
|
|
|
|
|
code2.AjouterJeton(jetons2[1]);
|
|
|
|
|
code2.AjouterJeton(jetons2[2]);
|
|
|
|
|
|
|
|
|
|
IEnumerable<Indicateur> indicateurs = code.Comparer(autreCode);
|
|
|
|
|
IReadOnlyList<Indicateur> indicateurs = code1.Comparer(code2);
|
|
|
|
|
|
|
|
|
|
Assert.Equal(3, indicateurs.Count());
|
|
|
|
|
Assert.Contains(Indicateur.BONNEPLACE, indicateurs);
|
|
|
|
|
Assert.DoesNotContain(Indicateur.BONNECOULEUR, indicateurs);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TestComparerBonnePlace()
|
|
|
|
|
public void TestComparerDifferent()
|
|
|
|
|
{
|
|
|
|
|
Code code = new Code([new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC)]);
|
|
|
|
|
Code autreCode = new Code([new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.NOIR)]);
|
|
|
|
|
|
|
|
|
|
IEnumerable<Indicateur> indicateurs = code.Comparer(autreCode);
|
|
|
|
|
|
|
|
|
|
Assert.Equal(2, indicateurs.Count());
|
|
|
|
|
Assert.Contains(Indicateur.BONNEPLACE, indicateurs);
|
|
|
|
|
Assert.DoesNotContain(Indicateur.BONNECOULEUR, indicateurs);
|
|
|
|
|
}
|
|
|
|
|
Jeton[] jetons1 = [new Jeton(Couleur.Noir), new Jeton(Couleur.Jaune), new Jeton(Couleur.Vert)];
|
|
|
|
|
Code code1 = new Code(3);
|
|
|
|
|
code1.AjouterJeton(jetons1[0]);
|
|
|
|
|
code1.AjouterJeton(jetons1[1]);
|
|
|
|
|
code1.AjouterJeton(jetons1[2]);
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TestComparerBonneCouleur()
|
|
|
|
|
{
|
|
|
|
|
Code code = new Code([new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC)]);
|
|
|
|
|
Code autreCode = new Code([new Jeton(Couleur.BLEU), new Jeton(Couleur.ROUGE), new Jeton(Couleur.NOIR)]);
|
|
|
|
|
Jeton[] jetons2 = [new Jeton(Couleur.Rouge), new Jeton(Couleur.Bleu), new Jeton(Couleur.Blanc)];
|
|
|
|
|
Code code2 = new Code(3);
|
|
|
|
|
code2.AjouterJeton(jetons2[0]);
|
|
|
|
|
code2.AjouterJeton(jetons2[1]);
|
|
|
|
|
code2.AjouterJeton(jetons2[2]);
|
|
|
|
|
|
|
|
|
|
IEnumerable<Indicateur> indicateurs = code.Comparer(autreCode);
|
|
|
|
|
IReadOnlyList<Indicateur> indicateurs = code1.Comparer(code2);
|
|
|
|
|
|
|
|
|
|
Assert.Equal(2, indicateurs.Count());
|
|
|
|
|
Assert.Contains(Indicateur.BONNECOULEUR, indicateurs);
|
|
|
|
|
Assert.DoesNotContain(Indicateur.BONNEPLACE, indicateurs);
|
|
|
|
|
Assert.Empty(indicateurs);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TestComparerBonnePlaceEtCouleur()
|
|
|
|
|
public void TestComparerMonCodeIncomplet()
|
|
|
|
|
{
|
|
|
|
|
Code code = new Code([new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC)]);
|
|
|
|
|
Code autreCode = new Code([new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLANC), new Jeton(Couleur.BLEU)]);
|
|
|
|
|
|
|
|
|
|
IEnumerable<Indicateur> indicateurs = code.Comparer(autreCode);
|
|
|
|
|
Code code1 = new Code(3);
|
|
|
|
|
|
|
|
|
|
Assert.Equal(3, indicateurs.Count());
|
|
|
|
|
Assert.Contains(Indicateur.BONNEPLACE, indicateurs);
|
|
|
|
|
Assert.Contains(Indicateur.BONNECOULEUR, indicateurs);
|
|
|
|
|
}
|
|
|
|
|
Jeton[] jetons2 = [new Jeton(Couleur.Rouge), new Jeton(Couleur.Bleu), new Jeton(Couleur.Blanc)];
|
|
|
|
|
Code code2 = new Code(3);
|
|
|
|
|
code2.AjouterJeton(jetons2[0]);
|
|
|
|
|
code2.AjouterJeton(jetons2[1]);
|
|
|
|
|
code2.AjouterJeton(jetons2[2]);
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TestComparerDifferent()
|
|
|
|
|
{
|
|
|
|
|
Code code = new Code([new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC)]);
|
|
|
|
|
Code autreCode = new Code([new Jeton(Couleur.VERT), new Jeton(Couleur.JAUNE), new Jeton(Couleur.NOIR)]);
|
|
|
|
|
IEnumerable<Indicateur> indicateurs = code.Comparer(autreCode);
|
|
|
|
|
IEnumerable<Indicateur> indicateurs = code1.Comparer(code2);
|
|
|
|
|
|
|
|
|
|
Assert.Empty(indicateurs);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TestComparerMonCodeIncomplet()
|
|
|
|
|
public void TestComparerSonCodeIncomplet()
|
|
|
|
|
{
|
|
|
|
|
Code code = new Code(3);
|
|
|
|
|
Code autreCode = new Code([new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC)]);
|
|
|
|
|
IEnumerable<Indicateur> indicateurs = code.Comparer(autreCode);
|
|
|
|
|
Jeton[] jetons1 = [new Jeton(Couleur.Noir), new Jeton(Couleur.Jaune), new Jeton(Couleur.Vert)];
|
|
|
|
|
Code code1 = new Code(3);
|
|
|
|
|
code1.AjouterJeton(jetons1[0]);
|
|
|
|
|
code1.AjouterJeton(jetons1[1]);
|
|
|
|
|
code1.AjouterJeton(jetons1[2]);
|
|
|
|
|
|
|
|
|
|
Assert.Empty(indicateurs);
|
|
|
|
|
}
|
|
|
|
|
Code code2 = new Code(3);
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void TestComparerSonCodeIncomplet()
|
|
|
|
|
{
|
|
|
|
|
Code code = new Code([new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC)]);
|
|
|
|
|
Code autreCode = new Code(3);
|
|
|
|
|
IEnumerable<Indicateur> indicateurs = code.Comparer(autreCode);
|
|
|
|
|
IReadOnlyList<Indicateur> indicateurs = code1.Comparer(code2);
|
|
|
|
|
|
|
|
|
|
Assert.Empty(indicateurs);
|
|
|
|
|
}
|
|
|
|
|