diff --git a/Sources/UnitTesting/AjouterCodeEventArgsUT.cs b/Sources/UnitTesting/AjouterCodeEventArgsUT.cs deleted file mode 100644 index 74f8ba7..0000000 --- a/Sources/UnitTesting/AjouterCodeEventArgsUT.cs +++ /dev/null @@ -1,20 +0,0 @@ -using CoreLibrary.Core; -using CoreLibrary.Evenements; -using Xunit; - -namespace UnitTesting -{ - public class AjouterCodeEventArgsUT - { - [Fact] - public void TestConstructeurValide() - { - Code monCode = new Code([new Jeton(Couleur.VERT), new Jeton(Couleur.BLEU)]); - - AjouterCodeEventArgs evenement = new AjouterCodeEventArgs(monCode); - - Assert.Equal(monCode, evenement.Code); - } - - } -} diff --git a/Sources/UnitTesting/AjouterJoueurEventArgs.cs b/Sources/UnitTesting/AjouterJoueurEventArgs.cs deleted file mode 100644 index 3470cc7..0000000 --- a/Sources/UnitTesting/AjouterJoueurEventArgs.cs +++ /dev/null @@ -1,21 +0,0 @@ -using CoreLibrary.Core; -using CoreLibrary.Evenements; -using CoreLibrary.Joueurs; -using Xunit; - -namespace UnitTesting -{ - public class AjouterJoueurEventArgsUT - { - [Fact] - public void TestConstructeurValide() - { - Joueur monJoueur = new Joueur("Céleste"); - - AjouterJoueurEventArgs evenement = new AjouterJoueurEventArgs(monJoueur); - - Assert.Equal(monJoueur, evenement.Joueur); - } - - } -} diff --git a/Sources/UnitTesting/CodeUT.cs b/Sources/UnitTesting/CodeUT.cs index 2e65a53..b4500d8 100644 --- a/Sources/UnitTesting/CodeUT.cs +++ b/Sources/UnitTesting/CodeUT.cs @@ -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(() => 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(() => 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(() => code.AjouterJeton(new Jeton(Couleur.ROUGE))); + { + Jeton jeton = new Jeton(Couleur.Jaune); + Code code = new Code(3); + code.AjouterJeton(jeton); + Assert.Throws(() => 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 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 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 indicateurs = code.Comparer(autreCode); + IReadOnlyList 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 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 indicateurs = code.Comparer(autreCode); + IReadOnlyList 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 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 indicateurs = code.Comparer(autreCode); + IEnumerable 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 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 indicateurs = code.Comparer(autreCode); + IReadOnlyList indicateurs = code1.Comparer(code2); Assert.Empty(indicateurs); } diff --git a/Sources/UnitTesting/ConstruireJoueurEventArgsUT.cs b/Sources/UnitTesting/ConstruireJoueurEventArgsUT.cs deleted file mode 100644 index 54a9808..0000000 --- a/Sources/UnitTesting/ConstruireJoueurEventArgsUT.cs +++ /dev/null @@ -1,20 +0,0 @@ -using CoreLibrary.Core; -using CoreLibrary.Evenements; -using Xunit; - -namespace UnitTesting -{ - public class ConstruireJoueurEventArgsUT - { - [Fact] - public void TestConstructeurValide() - { - ConstruireJoueurEventArgs evenement = new ConstruireJoueurEventArgs("Bonjour"); - ConstruireJoueurEventArgs evenement2 = new ConstruireJoueurEventArgs(null); - - Assert.Equal("Bonjour", evenement.Nom); - Assert.Null(evenement2.Nom); - } - - } -} diff --git a/Sources/UnitTesting/DemanderNomEventArgsUT.cs b/Sources/UnitTesting/DemanderNomEventArgsUT.cs index fb8a6be..311226a 100644 --- a/Sources/UnitTesting/DemanderNomEventArgsUT.cs +++ b/Sources/UnitTesting/DemanderNomEventArgsUT.cs @@ -9,12 +9,12 @@ namespace UnitTesting [Fact] public void TestConstructeurValide() { - JoueurBuilder joueurBuilder = new JoueurBuilder(); + Joueur joueur = new Joueur(); int indice = 15; - DemanderJoueurEventArgs evenement = new DemanderJoueurEventArgs(indice, joueurBuilder); + PartieDemanderJoueurEventArgs evenement = new PartieDemanderJoueurEventArgs(indice, joueur); - Assert.Equal(joueurBuilder, evenement.JoueurBuilder); + Assert.Equal(joueur, evenement.JoueurDemande); Assert.Equal(indice, evenement.Indice); } diff --git a/Sources/UnitTesting/JouerCodeEventArgsUT.cs b/Sources/UnitTesting/JouerCodeEventArgsUT.cs deleted file mode 100644 index c46a1b0..0000000 --- a/Sources/UnitTesting/JouerCodeEventArgsUT.cs +++ /dev/null @@ -1,19 +0,0 @@ -using CoreLibrary.Core; -using CoreLibrary.Evenements; -using Xunit; - -namespace UnitTesting -{ - public class JouerCodeEventArgsUT - { - [Fact] - public void TestConstructeurValide() - { - Code monCode = new Code([new Jeton(Couleur.VERT), new Jeton(Couleur.BLEU)]); - - JouerCodeEventArgs evenement = new JouerCodeEventArgs(monCode); - - Assert.Equal(monCode, evenement.Code); - } - } -} diff --git a/Sources/UnitTesting/JoueurBuilderUT.cs b/Sources/UnitTesting/JoueurBuilderUT.cs deleted file mode 100644 index 4291fe0..0000000 --- a/Sources/UnitTesting/JoueurBuilderUT.cs +++ /dev/null @@ -1,50 +0,0 @@ -using CoreLibrary.Core; -using CoreLibrary.Evenements; -using CoreLibrary.Joueurs; -using System.Reflection; -using Xunit; - -namespace UnitTesting -{ - public class JoueurBuilderUT - { - [Fact] - public void JoueurBuilderTest() - { - string nom = "Céleste"; - string? nomEvenement = ""; - - JoueurBuilder builder = new JoueurBuilder(); - builder.ConstruireJoueur += (Object? sender, ConstruireJoueurEventArgs e) => nomEvenement = e.Nom; - - builder.Nom(nom); - - Assert.Equal(nom, nomEvenement); - } - - [Fact] - public void JoueurBuilderQuandConstruireJoueur() - { - string nom = "Céleste"; - string? nomEvenement = ""; - - JoueurBuilder builder = new JoueurBuilder(); - builder.ConstruireJoueur += (Object? sender, ConstruireJoueurEventArgs e) => nomEvenement = e.Nom; - - Type type = typeof(JoueurBuilder); - MethodInfo? methodInfo = type.GetMethod("QuandConstruireJoueur", BindingFlags.NonPublic | BindingFlags.Instance); - Assert.NotNull(methodInfo); - methodInfo.Invoke(builder, [nom]); - - Assert.Equal(nom, nomEvenement); - } - - [Fact] - public void JoueurBuilderQuandConstruireJoueurSansBranchement() - { - JoueurBuilder builder = new JoueurBuilder(); - - Assert.Null(Record.Exception(() => builder.Nom("Pauline"))); - } - } -} diff --git a/Sources/UnitTesting/JoueurUT.cs b/Sources/UnitTesting/JoueurUT.cs index d507f01..4165f16 100644 --- a/Sources/UnitTesting/JoueurUT.cs +++ b/Sources/UnitTesting/JoueurUT.cs @@ -11,86 +11,27 @@ namespace UnitTesting [Fact] public void TestConstructeur1Valide() { - string nom = "toto"; + string nom = ""; - Joueur joueur = new Joueur(nom); + Joueur joueur = new Joueur(); Assert.Equal(nom, joueur.Nom); - Assert.Equal(0, joueur.NbCoutTotal); - Assert.Equal(0, joueur.NbPartieGagnee); - Assert.Equal(0, joueur.NbPartieEgalite); - Assert.Equal(0, joueur.NbPartiePerdue); + Assert.False(joueur.EstConnecte); } [Fact] public void TestConstructeur2Valide() { - string nom = "Bob"; - int nbCoutTotal = 10; - int nbPartieGagnee = 5; - int nbPartieEgalite = 2; - int nbPartiePerdue = 3; - - Joueur joueur = new Joueur(nom, nbCoutTotal, nbPartieGagnee, nbPartieEgalite, nbPartiePerdue); - - Assert.Equal(nom, joueur.Nom); - Assert.Equal(nbCoutTotal, joueur.NbCoutTotal); - Assert.Equal(nbPartieGagnee, joueur.NbPartieGagnee); - Assert.Equal(nbPartieEgalite, joueur.NbPartieEgalite); - Assert.Equal(nbPartiePerdue, joueur.NbPartiePerdue); - } - - [Fact] - public void TestEvenement() - { - Code code = new Code([new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.JAUNE), new Jeton(Couleur.VERT)]); - Code? codeEvenement = null; - - Joueur j = new Joueur("Céleste"); - j.JouerCode += (Object? sender, JouerCodeEventArgs e) => codeEvenement = e.Code; - - j.Code(code); - - Assert.NotNull(codeEvenement); - Assert.Equal(code, codeEvenement); - } - - [Fact] - public void JoueurQuandJouerCode() - { - Code code = new Code(4); - code.AjouterJeton(new Jeton(Couleur.Rouge)); - code.AjouterJeton(new Jeton(Couleur.Blanc)); - code.AjouterJeton(new Jeton(Couleur.Blanc)); - code.AjouterJeton(new Jeton(Couleur.Noir)); - - Code? codeEvenement = null; + string nom = "toto"; - Joueur joueur = new Joueur("Céleste"); - joueur.JouerCode += (Object? sender, JouerCodeEventArgs e) => codeEvenement = e.Code; + Joueur joueur = new Joueur(nom); - Type type = typeof(Joueur); - MethodInfo? methodInfo = type.GetMethod("QuandJouerCode", BindingFlags.NonPublic | BindingFlags.Instance); - Assert.NotNull(methodInfo); - methodInfo.Invoke(joueur, [code]); - Assert.NotNull(codeEvenement); - Assert.Equal(code, codeEvenement); + Assert.Equal(nom, joueur.Nom); + Assert.False(joueur.EstConnecte); } - [Fact] - public void JoueurQuandJouerCodeSansBranchement() - { - Joueur joueur = new Joueur("Pauline"); - Code code = new Code(4); - code.AjouterJeton(new Jeton(Couleur.ROUGE)); - code.AjouterJeton(new Jeton(Couleur.BLANC)); - code.AjouterJeton(new Jeton(Couleur.BLEU)); - code.AjouterJeton(new Jeton(Couleur.NOIR)); - - Assert.Null(Record.Exception(() => joueur.Code(code))); - } } } diff --git a/Sources/UnitTesting/ManagerUT.cs b/Sources/UnitTesting/ManagerUT.cs index ef2d401..3b2da63 100644 --- a/Sources/UnitTesting/ManagerUT.cs +++ b/Sources/UnitTesting/ManagerUT.cs @@ -1,4 +1,5 @@ -using CoreLibrary.Manager; +using CoreLibrary.Manageurs; +using CoreLibrary.Persistance; using Xunit; namespace UnitTesting @@ -8,18 +9,10 @@ namespace UnitTesting [Fact] public void TestConstruteur() { - Manager manager = new Manager(new Stub()); - Assert.NotNull(manager.Joueurs); - Assert.NotEmpty(manager.Joueurs); - } - - [Fact] - public void TestDispose() - { - Stub stub = new Stub(); - Manager manager = new Manager(stub); - manager.Dispose(); - Assert.True(stub.EstEnregistre); + IPersistance persistance = new PersistanceJSON(); + Manageur manageur = new Manageur(persistance); + Assert.NotNull(manageur.Joueurs); + Assert.NotEmpty(manageur.Joueurs); } } } diff --git a/Sources/UnitTesting/NouveauJoueurEventArgsUT.cs b/Sources/UnitTesting/NouveauJoueurEventArgsUT.cs deleted file mode 100644 index 0b1a607..0000000 --- a/Sources/UnitTesting/NouveauJoueurEventArgsUT.cs +++ /dev/null @@ -1,16 +0,0 @@ -using CoreLibrary.Evenements; -using Xunit; - -namespace UnitTesting -{ - public class NouveauJoueurEventArgsUT - { - [Fact] - public void TestConstructeurValide() - { - NouveauJoueurEventArgs evenement = new NouveauJoueurEventArgs("Céleste"); - - Assert.Equal("Céleste", evenement.Nom); - } - } -} diff --git a/Sources/UnitTesting/NouveauTourEventArgsUT.cs b/Sources/UnitTesting/NouveauTourEventArgsUT.cs index f3ee7da..32e2f95 100644 --- a/Sources/UnitTesting/NouveauTourEventArgsUT.cs +++ b/Sources/UnitTesting/NouveauTourEventArgsUT.cs @@ -1,5 +1,5 @@ using CoreLibrary.Core; -using CoreLibrary.Events; +using CoreLibrary.Evenements; using CoreLibrary.Joueurs; using Xunit; diff --git a/Sources/UnitTesting/PartieDemanderJoueurJouerEventArgsUT.cs b/Sources/UnitTesting/PartieDemanderJoueurJouerEventArgsUT.cs new file mode 100644 index 0000000..0dd6810 --- /dev/null +++ b/Sources/UnitTesting/PartieDemanderJoueurJouerEventArgsUT.cs @@ -0,0 +1,26 @@ +using CoreLibrary.Core; +using CoreLibrary.Evenements; +using Xunit; + +namespace UnitTesting +{ + public class PartieDemanderJoueurJouerEventArgsUT + { + [Fact] + public void TestConstructeurValide() + { + int tour = 2; + string nom = "MonJoueur"; + Plateau plateau = new Plateau(3, 4); + Code code = new Code(4); + bool estJoueur = true; + + PartieDemanderJoueurJouerEventArgs evenement = new PartieDemanderJoueurJouerEventArgs(tour, nom, plateau, code, estJoueur); + Assert.Equal(tour, evenement.Tour); + Assert.Equal(nom, evenement.Nom); + Assert.Equal(plateau, evenement.Plateau); + Assert.Equal(code, evenement.Code); + Assert.Equal(estJoueur, evenement.EstJoueur); + } + } +} diff --git a/Sources/UnitTesting/PartieNonCommenceeExceptionUT.cs b/Sources/UnitTesting/PartieNonCommenceeExceptionUT.cs deleted file mode 100644 index e5d0c2d..0000000 --- a/Sources/UnitTesting/PartieNonCommenceeExceptionUT.cs +++ /dev/null @@ -1,83 +0,0 @@ -using CoreLibrary.Exceptions; -using System.Reflection; -using System.Runtime.Serialization; -using Xunit; - -namespace UnitTesting -{ - public class PartieNonCommenceeExceptionUT - { - [Fact] - public void ExceptionDefaut() - { - Assert.ThrowsAsync(() => throw new PartieNonCommenceeException()); - } - - [Fact] - public void ExceptionMessage() - { - string message = "Mon super gros problème."; - - Assert.ThrowsAsync(() => throw new PartieNonCommenceeException(message)); - - try - { - throw new PartieNonCommenceeException(message); - } - catch(PartieNonCommenceeException e) - { - Assert.Equal(message, e.Message); - } - } - - [Fact] - public void ExceptionMessageEtException() - { - string message = "Mon super gros problème."; - string message2 = "Pas de chance..."; - InvalidOperationException parent = new InvalidOperationException(message2); - - Assert.ThrowsAsync(() => throw new PartieNonCommenceeException(message, parent)); - - try - { - throw new PartieNonCommenceeException(message, parent); - } - catch (PartieNonCommenceeException e) - { - Assert.Equal(message, e.Message); - Assert.NotNull(e.InnerException); - Assert.IsType(e.InnerException); - Assert.Equal(message2, e.InnerException.Message); - } - } - - [Fact] - public void ExceptionSerialisation() - { - PartieNonCommenceeException exception = new PartieNonCommenceeException(); - -#pragma warning disable SYSLIB0050 - SerializationInfo info = new SerializationInfo(typeof(PartieNonCommenceeException), new FormatterConverter()); - StreamingContext contexte = new StreamingContext(StreamingContextStates.All); -#pragma warning restore SYSLIB0050 - -#pragma warning disable SYSLIB0051 - exception.GetObjectData(info, contexte); -#pragma warning restore SYSLIB0051 - - Assert.Equal(exception.Message, info.GetString("Message")); - -#pragma warning disable SYSLIB0050 - PartieNonCommenceeException exceptionSerialisee = - (PartieNonCommenceeException)FormatterServices.GetUninitializedObject(typeof(PartieNonCommenceeException)); -#pragma warning restore SYSLIB0050 - - ConstructorInfo? constructeur = typeof(PartieNonCommenceeException).GetConstructor(BindingFlags.Instance | BindingFlags.NonPublic, null, [typeof(SerializationInfo), typeof(StreamingContext)], null); - Assert.NotNull(constructeur); - constructeur.Invoke(exceptionSerialisee, [info, contexte]); - - Assert.Equal(exception.Message, exceptionSerialisee.Message); - } - } -} diff --git a/Sources/UnitTesting/PartiePartieTermineeEventArgsUT.cs b/Sources/UnitTesting/PartiePartieTermineeEventArgsUT.cs new file mode 100644 index 0000000..50821c9 --- /dev/null +++ b/Sources/UnitTesting/PartiePartieTermineeEventArgsUT.cs @@ -0,0 +1,20 @@ + +using CoreLibrary.Evenements; +using Xunit; + +namespace UnitTesting +{ + public class PartiePartieTermineeEventArgsUT + { + [Fact] + public void TestConstructeurValide() + { + IReadOnlyList gagnants = new List(["joueur1", "joueur2"]); + IReadOnlyList perdants = new List(["joueur3"]); + + PartiePartieTermineeEventArgs evenement = new PartiePartieTermineeEventArgs(gagnants, perdants); + Assert.Equal(gagnants, evenement.Gagnants); + Assert.Equal(perdants, evenement.Perdants); + } + } +} diff --git a/Sources/UnitTesting/PartiePasserLaMainEventArgsUT.cs b/Sources/UnitTesting/PartiePasserLaMainEventArgsUT.cs new file mode 100644 index 0000000..dbca6d8 --- /dev/null +++ b/Sources/UnitTesting/PartiePasserLaMainEventArgsUT.cs @@ -0,0 +1,19 @@ + + +using CoreLibrary.Evenements; +using Xunit; + +namespace UnitTesting +{ + public class PartiePasserLaMainEventArgsUT + { + [Fact] + public void TestConstructeurValide() + { + string joueur = "MonJoueur"; + + PartiePasserLaMainEventArgs evenement = new PartiePasserLaMainEventArgs(joueur); + Assert.Equal(joueur, evenement.Joueur); + } + } +} diff --git a/Sources/UnitTesting/PartieTermineeEventArgsUT.cs b/Sources/UnitTesting/PartieTermineeEventArgsUT.cs deleted file mode 100644 index 09f0e6a..0000000 --- a/Sources/UnitTesting/PartieTermineeEventArgsUT.cs +++ /dev/null @@ -1,24 +0,0 @@ -using CoreLibrary.Joueurs; -using CoreLibrary.Core; -using CoreLibrary.Events; -using Xunit; - -namespace UnitTesting -{ - public class PartieTermineeEventArgsUT - { - [Fact] - public void TestConstructeurValide() - { - Plateau plateau = new Plateau(4, 12); - Joueur[] gagnants = [new Joueur("Pauline"), new Joueur("Camille")]; - Joueur[] perdants = [new Joueur("Céleste")]; - - PartieTermineeEventArgs evenement = new PartieTermineeEventArgs(gagnants, perdants); - - Assert.Equal(gagnants, evenement.Gagnants); - Assert.Equal(perdants, evenement.Perdants); - } - - } -} diff --git a/Sources/UnitTesting/PlateauAjouterCodeEventArgsUT.cs b/Sources/UnitTesting/PlateauAjouterCodeEventArgsUT.cs new file mode 100644 index 0000000..7214741 --- /dev/null +++ b/Sources/UnitTesting/PlateauAjouterCodeEventArgsUT.cs @@ -0,0 +1,19 @@ +using CoreLibrary.Core; +using CoreLibrary.Evenements; +using Xunit; + +namespace UnitTesting +{ + public class PlateauAjouterCodeEventArgsUT + { + [Fact] + public void TestConstructeurValide() + { + Plateau plateau = new Plateau(4,3); + + PlateauAjouterCodeEventArgs evenement = new PlateauAjouterCodeEventArgs(plateau); + + Assert.Equal(plateau, evenement.Plateau); + } + } +} diff --git a/Sources/UnitTesting/PlateauUT.cs b/Sources/UnitTesting/PlateauUT.cs index 5bfc9ec..f78aeda 100644 --- a/Sources/UnitTesting/PlateauUT.cs +++ b/Sources/UnitTesting/PlateauUT.cs @@ -12,7 +12,6 @@ namespace UnitTesting { Plateau plateau = new Plateau(4,12); Assert.NotNull(plateau); - Assert.Equal(1, plateau.Tour); Assert.False(plateau.Victoire); } @@ -27,12 +26,16 @@ namespace UnitTesting public void TestEstCompletTrue() { Plateau plateau = new Plateau(4, 3); - Code code = new Code([new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC), new Jeton(Couleur.JAUNE)]); + Jeton[] jetons = [new Jeton(Couleur.Rouge), new Jeton(Couleur.Bleu), new Jeton(Couleur.Blanc), new Jeton(Couleur.Jaune)]; + Code code = new Code(4); + code.AjouterJeton(jetons[0]); + code.AjouterJeton(jetons[1]); + code.AjouterJeton(jetons[2]); plateau.AjouterCode(code); plateau.AjouterCode(code); plateau.AjouterCode(code); - bool estComplet = plateau.EstComplet(); + bool estComplet = plateau.Complet; Assert.True(estComplet); } @@ -41,32 +44,30 @@ namespace UnitTesting public void TestEstCompletFalse() { Plateau plateau = new Plateau(4, 3); - Code code = new Code([new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC), new Jeton(Couleur.JAUNE)]); + Jeton[] jetons = [new Jeton(Couleur.Rouge), new Jeton(Couleur.Bleu), new Jeton(Couleur.Blanc), new Jeton(Couleur.Jaune)]; + Code code = new Code(4); + code.AjouterJeton(jetons[0]); + code.AjouterJeton(jetons[1]); plateau.AjouterCode(code); plateau.AjouterCode(code); - bool estComplet = plateau.EstComplet(); + bool estComplet = plateau.Complet; Assert.False(estComplet); } - [Fact] - public void TestAjouterCodeValide() - { - 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)]); - - plateau.AjouterCode(code); - - Assert.Equal(2, plateau.Tour); - } - [Fact] public void TestAjouterCodeTailleIncorrecte() { 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)]); - + Jeton[] jetons = [new Jeton(Couleur.Rouge), new Jeton(Couleur.Bleu), new Jeton(Couleur.Blanc), new Jeton(Couleur.Jaune), new Jeton(Couleur.Bleu)]; + Code code = new Code(4); + code.AjouterJeton(jetons[0]); + code.AjouterJeton(jetons[1]); + code.AjouterJeton(jetons[2]); + code.AjouterJeton(jetons[3]); + code.AjouterJeton(jetons[4]); + Assert.Throws(() => plateau.AjouterCode(code)); } @@ -95,175 +96,5 @@ namespace UnitTesting plateau.AjouterCode(codeSecret); Assert.True(plateau.Victoire); } - - [Fact] - public void TestEstBonCodeTailleException() - { - Plateau plateau = new Plateau(3, 5); - Code code = new Code(4); - - Assert.Throws(() => plateau.EstBonCode(code)); - } - - [Fact] - public void TestEstBonCodeIncomplet() - { - Plateau plateau = new Plateau(3, 5); - Code code = new Code(3); - - Assert.Throws(() => plateau.EstBonCode(code)); - } - - [Fact] - public void TestEstBonCodeTrue() - { - Plateau plateau = new Plateau(4, 10); - - Type type = typeof(Plateau); - - FieldInfo? fieldInfo = type.GetField("codeSecret", BindingFlags.NonPublic | BindingFlags.Instance); - Assert.NotNull(fieldInfo); - - Code? codeSecret = (Code?)fieldInfo.GetValue(plateau); - - Assert.NotNull(codeSecret); - Assert.True(plateau.EstBonCode(codeSecret)); - } - - [Fact] - public void TestEstBonCodeFalse() - { - Plateau plateau = new Plateau(2, 10); - - Type type = typeof(Plateau); - FieldInfo? fieldInfo = type.GetField("codeSecret", BindingFlags.NonPublic | BindingFlags.Instance); - Assert.NotNull(fieldInfo); - - Code? codeSecret = (Code?)fieldInfo.GetValue(plateau); - Assert.NotNull(codeSecret); - Jeton[] jetons = codeSecret.Jetons.Where(jeton => jeton.HasValue).Select(jeton => jeton!.Value).ToArray(); - - int i = 0; - int j = 1; - - while (jetons[i].Couleur == jetons[j].Couleur) - { - ++i; - ++j; - - if (j == jetons.Length) - { - plateau = new Plateau(2, 10); - codeSecret = (Code?)fieldInfo.GetValue(plateau); - Assert.NotNull(codeSecret); - jetons = codeSecret.Jetons.Where(jeton => jeton.HasValue).Select(jeton => jeton!.Value).ToArray(); - - i = 0; - j = 1; - } - } - - - Jeton tmp = jetons[0]; - jetons[0] = jetons[1]; - jetons[1] = tmp; - - Code code = new Code(jetons); - - Assert.False(plateau.EstBonCode(code)); - } - - [Fact] - public void TestEstBonCodeAucunIndicateur() - { - List couleurs = new List((Couleur[])Enum.GetValues(typeof(Couleur))); - Plateau plateau = new Plateau(4, 10); - Type type = typeof(Plateau); - - FieldInfo? fieldInfo = type.GetField("codeSecret", BindingFlags.NonPublic | BindingFlags.Instance); - Assert.NotNull(fieldInfo); - - Code? codeSecret = (Code?)fieldInfo.GetValue(plateau); - Assert.NotNull(codeSecret); - - Jeton[] jetons = codeSecret.Jetons.Where(jeton => jeton.HasValue).Select(jeton => jeton!.Value).ToArray(); - - for (int i=0; i> grille = plateau.Grille(); - - Assert.Equal(4, grille.First().Count()); - Assert.Empty(grille.Last()); - Assert.Equal(code1.Jetons, grille.ElementAt(0)); - Assert.Equal(code2.Jetons, grille.ElementAt(1)); - - } - - [Fact] - public void TestGrilleVide() - { - Plateau plateau = new Plateau(4, 3); - - IEnumerable> grille = plateau.Grille(); - - foreach (IEnumerable tour in grille) - { - Assert.All(tour, jeton => Assert.Null(jeton)); - } - } - - [Fact] - public void TestIndicateursVide() - { - Plateau plateau = new Plateau(4, 5); - - foreach(Indicateur[] indicateur in plateau.Indicateurs()) - { - Assert.Null(indicateur); - } - } - - [Fact] - public void TestIndicateursAjouterDeuxCodes() - { - Plateau plateau = new Plateau(4, 5); - Code code1 = new Code([new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC), new Jeton(Couleur.JAUNE), new Jeton(Couleur.BLANC)]); - Code code2 = new Code([new Jeton(Couleur.VERT), new Jeton(Couleur.JAUNE), new Jeton(Couleur.ROUGE), new Jeton(Couleur.NOIR)]); - - plateau.AjouterCode(code1); - plateau.AjouterCode(code2); - - Assert.NotNull(plateau.Indicateurs().ElementAt(0)); - Assert.NotNull(plateau.Indicateurs().ElementAt(1)); - Assert.Null(plateau.Indicateurs().ElementAt(2)); - Assert.Null(plateau.Indicateurs().ElementAt(3)); - Assert.Null(plateau.Indicateurs().ElementAt(4)); - } } } diff --git a/Sources/UnitTesting/StubUT.cs b/Sources/UnitTesting/StubUT.cs deleted file mode 100644 index 8fe5f4a..0000000 --- a/Sources/UnitTesting/StubUT.cs +++ /dev/null @@ -1,21 +0,0 @@ -using CoreLibrary.Manager; -using Xunit; - -namespace UnitTesting -{ - public class StubUT - { - [Fact] - public void ChargerTest() - { - Assert.NotEmpty(new Stub().Charger()); - } - - [Fact] - public void EnregistrerTest() - { - Assert.Null(Record.Exception(() => new Stub().Enregistrer([]))); - } - - } -}