using ConsoleApp; using CoreLibrary.Core; using CoreLibrary.Events; using CoreLibrary.Joueurs; using Xunit; namespace UnitTesting { public class EvenementUT { [Fact] public void DemanderJoueurTest() { string nom = "Céleste"; TextReader entreeDefaut = Console.In; using StringReader entreeModifiee = new StringReader(nom + Environment.NewLine); TextWriter sortieDefaut = Console.Out; using StringWriter sortieModifiee = new StringWriter(); Console.SetIn(entreeModifiee); Console.SetOut(sortieModifiee); Assert.Equal(nom, Evenements.DemanderJoueur(null, new DemanderJoueurEventArgs(1))); Console.SetIn(entreeDefaut); Console.SetOut(sortieDefaut); Assert.Contains("Joueur 1", sortieModifiee.ToString()); Assert.Contains(">>>", sortieModifiee.ToString()); } [Fact] public void CommencerLaPartieTest() { TextWriter sortieDefaut = Console.Out; using StringWriter sortieModifiee = new StringWriter(); Console.SetOut(sortieModifiee); Evenements.CommencerLaPartie(null, new DebutPartieEventArgs()); Console.SetOut(sortieDefaut); Assert.Contains("La partie commence, bonne chance à tous !", sortieModifiee.ToString()); } [Fact] public void NouveauTourTest() { TextWriter sortieDefaut = Console.Out; using StringWriter sortieModifiee = new StringWriter(); Console.SetOut(sortieModifiee); Plateau plateau = new Plateau(4, 12); Joueur joueur = new Joueur("céleste", plateau); Evenements.NouveauTour(null, new NouveauTourEventArgs(joueur, 4, plateau.Grille(), plateau.Indicateurs())); Console.SetOut(sortieDefaut); Assert.Contains("Tour 4 - céleste", sortieModifiee.ToString()); } [Fact] public void DemanderJetonTest() { string saisie = $"{(char)ConsoleKey.RightArrow}{(char)ConsoleKey.RightArrow}{(char)ConsoleKey.Enter}"; TextReader entreeDefaut = Console.In; using StringReader entreeModifiee = new StringReader(saisie); TextWriter sortieDefaut = Console.Out; using StringWriter sortieModifiee = new StringWriter(); Console.SetIn(entreeModifiee); Console.SetOut(sortieModifiee); Assert.Equal(new Jeton(Couleur.BLEU), Evenements.DemanderJeton(null, new DemanderJetonEventArgs(0))); Console.SetIn(entreeDefaut); Console.SetOut(sortieDefaut); Assert.Contains("O", sortieModifiee.ToString()); } } }