diff --git a/Sources/BowlingLib/Model/Equipe.cs b/Sources/BowlingLib/Model/Equipe.cs index 0ac6688..1d194fd 100644 --- a/Sources/BowlingLib/Model/Equipe.cs +++ b/Sources/BowlingLib/Model/Equipe.cs @@ -20,8 +20,28 @@ namespace BowlingLib.Model public List Joueurs { - get { return joueurs; } - set { joueurs = value; } + get { return this.joueurs.AsReadOnly().ToList(); } + set { + + foreach (Joueur nouv in value) AjouterJoueur(nouv); + } + } + + + public Equipe(string nom, List joueurs) + { + this.nom = nom; + + if ( joueurs != null && joueurs.Count > 0) + { + if (!this.joueurs.SequenceEqual(joueurs)) this.joueurs = joueurs; // Verification de doublon avant l'ajout des joueurs dans l'équipe + } + else + { + throw new ArgumentException("La liste est null "); + } + + } public Equipe(string nom) @@ -30,9 +50,20 @@ namespace BowlingLib.Model joueurs = new List(); } + + + public void AjouterJoueur(Joueur joueur) { - joueurs.Add(joueur); + if(!isExist(joueur)) + { + joueurs.Add(joueur); + + }else + { + throw new ArgumentException("Le joueur existe déjà dans l'équipe"); + } + } public void SupprimerJoueur(Joueur joueur) @@ -45,5 +76,17 @@ namespace BowlingLib.Model { return joueurs.AsReadOnly().ToList(); } + + + // Fonction permettant de vérifier si un joueur existe déjà dans la liste (l'équipe) + public bool isExist(Joueur nouvJoueur) + { + foreach(Joueur j in Joueurs) + { + if (nouvJoueur.Equals(j) return true; + } + return false; + } + } } diff --git a/Sources/BowlingLib/Model/Joueur.cs b/Sources/BowlingLib/Model/Joueur.cs index cf10721..70f95aa 100644 --- a/Sources/BowlingLib/Model/Joueur.cs +++ b/Sources/BowlingLib/Model/Joueur.cs @@ -11,13 +11,14 @@ namespace BowlingLib.Model private string pseudo; public Joueur(string pseudo) - { - this.pseudo = pseudo; + { if (pseudo == null || pseudo == "" || pseudo.Length < 3) { throw new ArgumentException("Le pseudo ne peut pas être vide"); } + + this.pseudo = pseudo; } public string Pseudo diff --git a/Sources/Tests/BowlingAppUnitTest/UTestEquipe.cs b/Sources/Tests/BowlingAppUnitTest/UTestEquipe.cs new file mode 100644 index 0000000..f9ec390 --- /dev/null +++ b/Sources/Tests/BowlingAppUnitTest/UTestEquipe.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using BowlingLib.Model; +using Xunit; + +namespace Test.BowlingAppUnitTest +{ + public class UnitTestEquipe + { + Equipe j = new Equipe("Les rois"); + [Fact] + public void TestConstructeur() + { + + + [Fact] + public void TestInvalidJoueur() + { + + } + + [Theory] + + public void TestContructeur(bool isFormated, bool isValid, string expectedPseudo, String pseudo, bool isEqual) + { + + + } + + //Test équipe avec stub + [Fact] + public void TestEquipeStub() + { + + } + } +}