From ad5e3ad6ed981645d130c2c3f776e3a00cee36b6 Mon Sep 17 00:00:00 2001 From: "nicolas.barbosa" Date: Fri, 7 Jun 2024 11:38:04 +0200 Subject: [PATCH] Test robot SupprimerCodesImpossibles --- Sources/ConsoleApp1/Program.cs | 53 ++++++++++++++++++++------------- Sources/UnitTesting/PartieUT.cs | 7 +---- Sources/UnitTesting/RobotUT.cs | 39 ++++++++++++++++++++++-- 3 files changed, 70 insertions(+), 29 deletions(-) diff --git a/Sources/ConsoleApp1/Program.cs b/Sources/ConsoleApp1/Program.cs index a9b8284..4787aa5 100644 --- a/Sources/ConsoleApp1/Program.cs +++ b/Sources/ConsoleApp1/Program.cs @@ -1,27 +1,40 @@ -// Cas 3 - Plateau rempli, code mauvaise couleur -using CoreLibrary.Core; +using CoreLibrary.Core; +using CoreLibrary.Joueurs; using System.Reflection; -Code code3 = new Code(1); -code3.AjouterJeton(new Jeton(Couleur.Rouge)); +Code codeSecret = new Code(1); +codeSecret.AjouterJeton(new Jeton(Couleur.Rouge)); -Plateau plateau3; -Code? codeSecret3; -do -{ - plateau3 = new Plateau(1, 1); +Code code1 = new Code(1); +code1.AjouterJeton(new Jeton(Couleur.Vert)); - FieldInfo? codeSecretInfo3 = typeof(Plateau).GetField("codeSecret", BindingFlags.NonPublic | BindingFlags.Instance); +Code code2 = new Code(1); +code2.AjouterJeton(new Jeton(Couleur.Jaune)); - codeSecret3 = codeSecretInfo3.GetValue(plateau2) as Code; - Assert.NotNull(codeSecret3); -} while (codeSecret3.RecupererJeton(0).Equals(code3.RecupererJeton(0))); +List codes = new List([ + codeSecret, + code1, + code2, +]); -plateau3.AjouterCode(codeSecret3); +Plateau plateau = new Plateau(1, 1); -MethodInfo? EstCodePossible3 = typeof(Robot).GetMethod("EstCodePossible", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static); -Assert.NotNull(EstCodePossible3); -object? estPossibleObj3 = EstCodePossible3.Invoke(new Robot(), [plateau3, code3]); -Assert.NotNull(estPossibleObj3); -Assert.IsType(estPossibleObj3); -Assert.False((bool)estPossibleObj3); \ No newline at end of file +FieldInfo? codeSecretInfo = typeof(Plateau).GetField("codeSecret", BindingFlags.NonPublic | BindingFlags.Instance); + +codeSecretInfo.SetValue(plateau, codeSecret); + +codeSecretInfo = typeof(Plateau).GetField("codeSecret", BindingFlags.NonPublic | BindingFlags.Instance); + +plateau.AjouterCode(codeSecret); +var a = codeSecretInfo.GetValue(plateau); +var b = plateau.Grille; + + + + + +MethodInfo? SupprimerCodesImpossiblesInfo = typeof(Robot).GetMethod("SupprimerCodesImpossibles", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static); + +SupprimerCodesImpossiblesInfo.Invoke(new Robot(), [codes, plateau]); + +Console.ReadLine(); \ No newline at end of file diff --git a/Sources/UnitTesting/PartieUT.cs b/Sources/UnitTesting/PartieUT.cs index dadbae8..1335f5d 100644 --- a/Sources/UnitTesting/PartieUT.cs +++ b/Sources/UnitTesting/PartieUT.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; +using System.Reflection; using Xunit; using CoreLibrary; using CoreLibrary.Core; @@ -9,8 +6,6 @@ using CoreLibrary.Joueurs; using CoreLibrary.Regles; using CoreLibrary.Evenements; using CoreLibrary.Exceptions; -using System.Diagnostics.Tracing; -using Xunit.Abstractions; namespace UnitTesting diff --git a/Sources/UnitTesting/RobotUT.cs b/Sources/UnitTesting/RobotUT.cs index a8dd1f8..7a8b303 100644 --- a/Sources/UnitTesting/RobotUT.cs +++ b/Sources/UnitTesting/RobotUT.cs @@ -1,6 +1,4 @@ -using CoreLibrary; -using CoreLibrary.Core; -using CoreLibrary.Evenements; +using CoreLibrary.Core; using CoreLibrary.Joueurs; using System.Reflection; using Xunit; @@ -69,5 +67,40 @@ namespace UnitTesting Assert.IsType(estPossibleObj3); Assert.False((bool)estPossibleObj3); } + + [Fact] + public void TestSupprimerCodesImpossibles() + { + Code codeSecret = new Code(1); + codeSecret.AjouterJeton(new Jeton(Couleur.Rouge)); + + Code code1 = new Code(1); + code1.AjouterJeton(new Jeton(Couleur.Vert)); + + Code code2 = new Code(1); + code2.AjouterJeton(new Jeton(Couleur.Jaune)); + + List codes = new List([ + codeSecret, + code1, + code2, + ]); + + Plateau plateau = new Plateau(1, 1); + + FieldInfo? codeSecretInfo = typeof(Plateau).GetField("codeSecret", BindingFlags.NonPublic | BindingFlags.Instance); + Assert.NotNull(codeSecretInfo); + codeSecretInfo.SetValue(plateau, codeSecret); + + plateau.AjouterCode(codeSecret); + + Assert.Equal(3, codes.Count); + + MethodInfo? SupprimerCodesImpossiblesInfo = typeof(Robot).GetMethod("SupprimerCodesImpossibles", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static); + Assert.NotNull(SupprimerCodesImpossiblesInfo); + SupprimerCodesImpossiblesInfo.Invoke(new Robot(), [codes, plateau]); + + Assert.Single(codes); + } } }