using CoreLibrary; using Xunit; namespace UnitTesting { public class CodeUT { [Fact] public void TestFirstConstructorValidArguments() { Code code = new Code(4); Assert.NotNull(code); Assert.Equal(4, code.Jetons().Count()); Assert.Equal(0, code.NbJetons); } [Fact] public void TestConstructorInvalidArguments() { Assert.Throws(() => new Code(0)); Assert.Throws(() => new Code(-1)); } [Fact] public void TestSecondConstructorValidArguments() { Jeton[] jetons = [new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLEU)]; Code code = new Code(jetons); Assert.NotNull(code); Assert.Equal(3, code.Jetons().Count()); Assert.Equal(3, code.NbJetons); } [Fact] public void TestSecondConstructorInvalidArguments() { Assert.Throws(() => new Code([])); } [Fact] public void TestAjouterJetonValid() { Jeton jeton = new Jeton(Couleur.JAUNE); Code code = new Code(3); code.AjouterJeton(jeton); Assert.Equal(1, code.NbJetons); Assert.Equal(jeton, code.Jetons().ElementAt(0)); } [Fact] public void TestAjouterJetonInvalid() { Code code = new Code([new Jeton(Couleur.NOIR)]); Assert.Throws(() => code.AjouterJeton(new Jeton(Couleur.ROUGE))); } [Fact] public void TestSupprimerDernierJetonValid() { Code code = new Code([new Jeton(Couleur.ROUGE), new Jeton(Couleur.BLEU), new Jeton(Couleur.BLANC)]); code.SupprimerDernierJeton(); Assert.Equal(2, code.NbJetons); } [Fact] public void TestSupprimerDernierJetonInvalid() { //Code code = new Code([]); //Assert.Throws(() => code.SupprimerDernierJeton()); Code code2 = new Code(4); Assert.Throws(() => code2.SupprimerDernierJeton()); } [Fact] public void TestRecupererJetonValid() { } } }