From ad5e3ad6ed981645d130c2c3f776e3a00cee36b6 Mon Sep 17 00:00:00 2001 From: "nicolas.barbosa" Date: Fri, 7 Jun 2024 11:38:04 +0200 Subject: [PATCH 1/3] 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); + } } } From c3a52794c451494ec21e48e1825356efd606a930 Mon Sep 17 00:00:00 2001 From: "nicolas.barbosa" Date: Fri, 7 Jun 2024 11:40:02 +0200 Subject: [PATCH 2/3] suprresion projet inutile et robot --- Sources/CoreLibrary/Joueurs/Robot.cs | 3 --- Sources/mastermind.sln | 6 ------ 2 files changed, 9 deletions(-) diff --git a/Sources/CoreLibrary/Joueurs/Robot.cs b/Sources/CoreLibrary/Joueurs/Robot.cs index 2ada0dc..dd3ce38 100644 --- a/Sources/CoreLibrary/Joueurs/Robot.cs +++ b/Sources/CoreLibrary/Joueurs/Robot.cs @@ -137,9 +137,6 @@ namespace CoreLibrary.Joueurs /// Une liste de tous les codes restants possibles. private static void SupprimerCodesImpossibles(List codes, Plateau plateau) { - if (codes == null) - return; - List indicesASupprimer = new List(); // Pour chaque code possible diff --git a/Sources/mastermind.sln b/Sources/mastermind.sln index f07dc69..f45ac52 100644 --- a/Sources/mastermind.sln +++ b/Sources/mastermind.sln @@ -16,8 +16,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTesting", "UnitTesting\ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Persistance", "Persistance\Persistance.csproj", "{B9E8C10D-9E0E-42F1-8F2C-1E2200DD96FA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp1", "ConsoleApp1\ConsoleApp1.csproj", "{2C86B541-6E8A-4C92-BC64-582413B22A49}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -46,10 +44,6 @@ Global {B9E8C10D-9E0E-42F1-8F2C-1E2200DD96FA}.Debug|Any CPU.Build.0 = Debug|Any CPU {B9E8C10D-9E0E-42F1-8F2C-1E2200DD96FA}.Release|Any CPU.ActiveCfg = Release|Any CPU {B9E8C10D-9E0E-42F1-8F2C-1E2200DD96FA}.Release|Any CPU.Build.0 = Release|Any CPU - {2C86B541-6E8A-4C92-BC64-582413B22A49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2C86B541-6E8A-4C92-BC64-582413B22A49}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2C86B541-6E8A-4C92-BC64-582413B22A49}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2C86B541-6E8A-4C92-BC64-582413B22A49}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From ab99839fd59b2c3419078d787cac8ff6dd5aa0ba Mon Sep 17 00:00:00 2001 From: "nicolas.barbosa" Date: Fri, 7 Jun 2024 11:40:30 +0200 Subject: [PATCH 3/3] suppression fichiers projet test --- Sources/ConsoleApp1/ConsoleApp1.csproj | 14 --------- Sources/ConsoleApp1/Program.cs | 40 -------------------------- 2 files changed, 54 deletions(-) delete mode 100644 Sources/ConsoleApp1/ConsoleApp1.csproj delete mode 100644 Sources/ConsoleApp1/Program.cs diff --git a/Sources/ConsoleApp1/ConsoleApp1.csproj b/Sources/ConsoleApp1/ConsoleApp1.csproj deleted file mode 100644 index 180e42c..0000000 --- a/Sources/ConsoleApp1/ConsoleApp1.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - - Exe - net8.0 - enable - enable - - - - - - - diff --git a/Sources/ConsoleApp1/Program.cs b/Sources/ConsoleApp1/Program.cs deleted file mode 100644 index 4787aa5..0000000 --- a/Sources/ConsoleApp1/Program.cs +++ /dev/null @@ -1,40 +0,0 @@ -using CoreLibrary.Core; -using CoreLibrary.Joueurs; -using System.Reflection; - -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); - -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