Correction de consolapp

master
Céleste BARBOSA 11 months ago
parent cf684d0049
commit e730b95689

@ -1,12 +1,14 @@
using CoreLibrary.Events;
using CoreLibrary.Joueurs;
using CoreLibrary.Core;
using System.Diagnostics.CodeAnalysis;
namespace ConsoleApp
{
/// <summary>
/// Fournit un ensemble de méthodes écoutant les événements liés au déroulement de la partie.
/// </summary>
[ExcludeFromCodeCoverage]
public static class Evenements
{
/// <summary>

@ -1,24 +1,34 @@
/// <summary>
/// Permet de jouer une partie de mastermind, avec les règles classiques
/// (2 joueurs, 12 tours, un code à 4 couleurs parmi 6)
/// </summary>
using ConsoleApp;
using CoreLibrary;
using CoreLibrary.Regles;
using System.Diagnostics.CodeAnalysis;
namespace AppConsole
{
/// <summary>
/// Permet de jouer une partie de mastermind, avec les règles classiques
/// (2 joueurs, 12 tours, un code à 4 couleurs parmi 6)
/// </summary>
[ExcludeFromCodeCoverage]
public static class Program
{
public static void Main()
{
Utils.DessinerTitre();
Utils.DessinerTitre();
Partie maPartie = new Partie(new ReglesClassiques());
Partie maPartie = new Partie(new ReglesClassiques());
maPartie.DemanderJoueur += Evenements.DemanderJoueur;
maPartie.DebutPartie += Evenements.CommencerLaPartie;
maPartie.NouveauTour += Evenements.NouveauTour;
maPartie.DemanderJeton += Evenements.DemanderJeton;
maPartie.AjouterJeton += Evenements.AjouterJeton;
maPartie.SupprimerDernierJeton += Evenements.SupprimerDernierJeton;
maPartie.AjouterCode += Evenements.AjouterCode;
maPartie.PartieTerminee += Evenements.PartieTerminee;
maPartie.DemanderJoueur += Evenements.DemanderJoueur;
maPartie.DebutPartie += Evenements.CommencerLaPartie;
maPartie.NouveauTour += Evenements.NouveauTour;
maPartie.DemanderJeton += Evenements.DemanderJeton;
maPartie.AjouterJeton += Evenements.AjouterJeton;
maPartie.SupprimerDernierJeton += Evenements.SupprimerDernierJeton;
maPartie.AjouterCode += Evenements.AjouterCode;
maPartie.PartieTerminee += Evenements.PartieTerminee;
maPartie.Jouer();
}
}
}
maPartie.Jouer();

@ -1,10 +1,12 @@
using CoreLibrary.Core;
using System.Diagnostics.CodeAnalysis;
namespace ConsoleApp
{
/// <summary>
/// Classe utilitaire contenant des méthodes pour dessiner des éléments dans la console.
/// </summary>
[ExcludeFromCodeCoverage]
public static class Utils
{
// Dictionnaires associant les valeurs des énumérations avec les couleurs de la console

@ -0,0 +1,87 @@
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());
}
}
}
Loading…
Cancel
Save