diff --git a/Sources/MaSoluction/Model/Game.cs b/Sources/MaSoluction/Model/Game.cs index 3c3d7dd..81d3414 100644 --- a/Sources/MaSoluction/Model/Game.cs +++ b/Sources/MaSoluction/Model/Game.cs @@ -11,17 +11,27 @@ namespace Model { private string name; - + private List listDice = new List(); //encapsulation des collections voir les videos partie 2 - public ReadOnlyCollection ListDice { get; set; } + public ReadOnlyCollection ListDice { get; set; } + + + public Game(string name, List listDice) + { + Name = name; - public Game(string name) + + + } + + public Game(string name, params Die[] numberDie1) { Name = name; - + AddDice(numberDie1); } + public string Name { get @@ -40,6 +50,7 @@ namespace Model } } + public bool AddDice(Die die) { if (listDice.Contains(die)) @@ -50,8 +61,18 @@ namespace Model return true; } - + public void AddDice(params Die[] die) + { + for (int i = 0; i < die.Length; i++) + { + AddDice(die[i]); + } + } + + public List GetDices() + { + return listDice; + } - } } diff --git a/Sources/MaSoluction/Data/IDataManager.cs b/Sources/MaSoluction/Model/IDataManager.cs similarity index 90% rename from Sources/MaSoluction/Data/IDataManager.cs rename to Sources/MaSoluction/Model/IDataManager.cs index 59a2bcc..fead6f5 100644 --- a/Sources/MaSoluction/Data/IDataManager.cs +++ b/Sources/MaSoluction/Model/IDataManager.cs @@ -5,7 +5,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Data +namespace Model { public interface IDataManager { diff --git a/Sources/MaSoluction/Data/Manager.cs b/Sources/MaSoluction/Model/Manager.cs similarity index 56% rename from Sources/MaSoluction/Data/Manager.cs rename to Sources/MaSoluction/Model/Manager.cs index 0bd59d8..e145817 100644 --- a/Sources/MaSoluction/Data/Manager.cs +++ b/Sources/MaSoluction/Model/Manager.cs @@ -4,10 +4,9 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; -using Model; -namespace Data +namespace Model { public class Manager { @@ -18,10 +17,19 @@ namespace Data { dataManager = data; } - - - - + + + public void AddDice(Die addD) + { + dataManager.AddDice(addD); + } + public void RemoveDice(Die removeD) + { + dataManager.RemoveDice(removeD); + } + + + } } diff --git a/Sources/MaSoluction/Model/NumberDie.cs b/Sources/MaSoluction/Model/NumberDie.cs index 91647b0..17bfbe5 100644 --- a/Sources/MaSoluction/Model/NumberDie.cs +++ b/Sources/MaSoluction/Model/NumberDie.cs @@ -47,5 +47,13 @@ namespace Model int resultat = random.Next(min, max + 1); return resultat; } + + public override bool Equals(object? obj) + { + return obj is NumberDie die && + Name == die.Name && + min == die.min && + max == die.max; + } } } diff --git a/Sources/MaSoluction/Testeur/TestMethodeRandom.cs b/Sources/MaSoluction/Testeur/TestMethodeRandom.cs index ae7ed8c..9ad64fe 100644 --- a/Sources/MaSoluction/Testeur/TestMethodeRandom.cs +++ b/Sources/MaSoluction/Testeur/TestMethodeRandom.cs @@ -1,17 +1,17 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Model; - -namespace Testeur -{ - public class TestMethodeRandom - { - [Fact] - public void TesterMethodeRandom() - { +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Model; + +namespace Testeur +{ + public class TestMethodeRandom + { + [Fact] + public void TesterMethodeRandom() + { for (int i=0;i>100;i++) { //Arrange @@ -24,12 +24,12 @@ namespace Testeur //Assert Assert.InRange(actual, expectedMin, expectedMax); - } - - - - - - } - } -} + } + + + + + + } + } +} diff --git a/Sources/MaSoluction/Testeur/TesterStub.cs b/Sources/MaSoluction/Testeur/TesterStub.cs new file mode 100644 index 0000000..a3ba23a --- /dev/null +++ b/Sources/MaSoluction/Testeur/TesterStub.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Data; +using Model; + +namespace Testeur +{ + public class TesterStub + { + [Fact] + public void TesterAddManager() + { + //Arange + Manager m = new Manager(new Stub()); + NumberDie nd = new NumberDie("de1",1,6); + // Game d = new Game("de1"); + m.AddDice(nd); + + Assert.Equal("de1", nd.Name); + } + } +} diff --git a/Sources/MaSoluction/Testeur/Testeur.csproj b/Sources/MaSoluction/Testeur/Testeur.csproj index 717ff27..927df7b 100644 --- a/Sources/MaSoluction/Testeur/Testeur.csproj +++ b/Sources/MaSoluction/Testeur/Testeur.csproj @@ -22,6 +22,7 @@ + diff --git a/Sources/MaSoluction/Testeur/UT_NumberDice.cs b/Sources/MaSoluction/Testeur/UT_NumberDice.cs index e25d018..3f52a85 100644 --- a/Sources/MaSoluction/Testeur/UT_NumberDice.cs +++ b/Sources/MaSoluction/Testeur/UT_NumberDice.cs @@ -26,7 +26,52 @@ namespace Testeur Assert.Equal (expectedMax, d.Max); Assert.Equal( expectedName,d.Name); } - - + + public static IEnumerable TestAddNumberDie() + { + yield return new object[] { + true, + new NumberDie[] + { + new NumberDie("de1",1,6), + new NumberDie("de2", 1, 6), + new NumberDie("de3", 1, 6), + new NumberDie("de4", 1, 6) + }, + new Game("Monopoly", new NumberDie("de1",1,6), + new NumberDie("de2", 1, 6), + new NumberDie("de3", 1, 6)), + new NumberDie("de4", 1, 6) + + }; + yield return new object[] { + + false, + new NumberDie[] + { + new NumberDie("de1",1,6), + new NumberDie("de2", 1, 6), + new NumberDie("de3", 1, 6), + + }, + new Game("Parchis", + new NumberDie("de1",1,6), + new NumberDie("de2", 1, 6), + new NumberDie("de3", 1, 6)), + new NumberDie("de3", 1, 6) + }; + + + } + [Theory] + [MemberData(nameof(TestAddNumberDie))] + public void Test_AddGame(bool expectedResult, NumberDie[] expectedDie,Game game,NumberDie die) + { + bool resultat = game.AddDice(die); + Assert.Equal(expectedResult, resultat); + Assert.Equal(expectedDie.Length,game.GetDices().Count); + Assert.All(expectedDie, i => game.ListDice.Contains(i)); + } + } }