diff --git a/Sources/MaSoluction/MaSoluction.sln b/Sources/MaSoluction/MaSoluction.sln index 92f89cb..95812de 100644 --- a/Sources/MaSoluction/MaSoluction.sln +++ b/Sources/MaSoluction/MaSoluction.sln @@ -7,6 +7,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Model", "Model\Model.csproj EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests", "Tests\Tests.csproj", "{836BDD1E-455B-4F88-8E96-41477F8013E6}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Testeur", "Testeur\Testeur.csproj", "{FA65498D-FD52-41F7-A87E-CED9A2AD2CFF}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -21,6 +23,10 @@ Global {836BDD1E-455B-4F88-8E96-41477F8013E6}.Debug|Any CPU.Build.0 = Debug|Any CPU {836BDD1E-455B-4F88-8E96-41477F8013E6}.Release|Any CPU.ActiveCfg = Release|Any CPU {836BDD1E-455B-4F88-8E96-41477F8013E6}.Release|Any CPU.Build.0 = Release|Any CPU + {FA65498D-FD52-41F7-A87E-CED9A2AD2CFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FA65498D-FD52-41F7-A87E-CED9A2AD2CFF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FA65498D-FD52-41F7-A87E-CED9A2AD2CFF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FA65498D-FD52-41F7-A87E-CED9A2AD2CFF}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Sources/MaSoluction/Model/Game.cs b/Sources/MaSoluction/Model/Game.cs index a81997e..3c3d7dd 100644 --- a/Sources/MaSoluction/Model/Game.cs +++ b/Sources/MaSoluction/Model/Game.cs @@ -1,21 +1,27 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Model { - class Game + public class Game { private string name; + + + private List listDice = new List(); //encapsulation des collections voir les videos partie 2 + public ReadOnlyCollection ListDice { get; set; } + + public Game(string name) { - this.name = name; + Name = name; + } - public readonly Collection ListDice { get; set; } - private List listDice = new List(); //encapsulation des collections voir les videos partie 2 public string Name { get @@ -34,9 +40,14 @@ namespace Model } } - public void AddDice(Die die) + public bool AddDice(Die die) { + if (listDice.Contains(die)) + { + return false; + } listDice.Add(die); + return true; } diff --git a/Sources/MaSoluction/Model/NumberDie.cs b/Sources/MaSoluction/Model/NumberDie.cs index d3c5807..7290dd9 100644 --- a/Sources/MaSoluction/Model/NumberDie.cs +++ b/Sources/MaSoluction/Model/NumberDie.cs @@ -13,6 +13,7 @@ namespace Model private static Random random=new Random(); public NumberDie(string name,int min,int max) : base(name) { + Name = name; Min = min; Max = max; } diff --git a/Sources/MaSoluction/Testeur/Testeur.csproj b/Sources/MaSoluction/Testeur/Testeur.csproj new file mode 100644 index 0000000..717ff27 --- /dev/null +++ b/Sources/MaSoluction/Testeur/Testeur.csproj @@ -0,0 +1,28 @@ + + + + net6.0 + enable + enable + + false + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + + + diff --git a/Sources/MaSoluction/Testeur/UT_NumberDice.cs b/Sources/MaSoluction/Testeur/UT_NumberDice.cs new file mode 100644 index 0000000..b146e02 --- /dev/null +++ b/Sources/MaSoluction/Testeur/UT_NumberDice.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Model; + +namespace Testeur +{ + public class UT_NumberDice + { + [Theory] + [InlineData(true, "De1", "De1" ,1,6,1,6)] + [InlineData(false, "", "", 1, 7, 1, 6)] + + public void TestConstructor(bool isValid,string expectedName, string name ,int expectedMin,int expectedMax,int min,int max) + { + + if (!isValid) + { + Assert.Throws(() => new NumberDie(name,min, max)); + return; + } + NumberDie d = new NumberDie(name,min,max); + Assert.Equal(expectedMin, d.Min); + Assert.Equal (expectedMax, d.Max); + + Assert.Equal( expectedName,d.Name); + } + + } +} diff --git a/Sources/MaSoluction/Testeur/UnitTest1.cs b/Sources/MaSoluction/Testeur/UnitTest1.cs new file mode 100644 index 0000000..56cae6f --- /dev/null +++ b/Sources/MaSoluction/Testeur/UnitTest1.cs @@ -0,0 +1,15 @@ +using Model; + +namespace Testeur +{ + public class UnitTest1 + { + [Fact] + public void TestConstructeurGame() + { + Game G = new Game("Monopoly"); + Assert.NotNull(G); + Assert.Equal("Monopoly",G.Name); + } + } +} \ No newline at end of file diff --git a/Sources/MaSoluction/Testeur/Usings.cs b/Sources/MaSoluction/Testeur/Usings.cs new file mode 100644 index 0000000..8c927eb --- /dev/null +++ b/Sources/MaSoluction/Testeur/Usings.cs @@ -0,0 +1 @@ +global using Xunit; \ No newline at end of file diff --git a/Sources/MaSoluction/Tests/TestNumberDie.cs b/Sources/MaSoluction/Tests/TestNumberDie.cs index 3f10408..69c7600 100644 --- a/Sources/MaSoluction/Tests/TestNumberDie.cs +++ b/Sources/MaSoluction/Tests/TestNumberDie.cs @@ -5,6 +5,7 @@ public void testConstructor() { + } }