diff --git a/Sources/Model/Dice/DiceGroupManager.cs b/Sources/Model/Dice/DiceGroupManager.cs index 785777c..3ed3f21 100644 --- a/Sources/Model/Dice/DiceGroupManager.cs +++ b/Sources/Model/Dice/DiceGroupManager.cs @@ -69,8 +69,8 @@ namespace Model.Dice /// public KeyValuePair> Update(KeyValuePair> before, KeyValuePair> after) { - // pas autorisé de changer les dés, juste le nom - if (!before.Value.Equals(after.Value)) + + if (!before.Value.ToList().Equals(after.Value.ToList())) { throw new ArgumentException("the group of dice cannot be updated, only the name", nameof(before)); } diff --git a/Sources/Tests/Data_UTs/Dice/DiceGroupManagerTest.cs b/Sources/Tests/Data_UTs/Dice/DiceGroupManagerTest.cs index 77329d5..b9ddd0b 100644 --- a/Sources/Tests/Data_UTs/Dice/DiceGroupManagerTest.cs +++ b/Sources/Tests/Data_UTs/Dice/DiceGroupManagerTest.cs @@ -142,6 +142,60 @@ namespace Tests.Data_UTs.Dice Xunit.Assert.Throws(action); } + [Fact] + public void TestRemoveWorksIfExists() + { + // Arrange + DiceGroupManager dgm = new(); + KeyValuePair> toAdd = new("Monopoly", new List { new NumberDie(new NumberFace(5), new NumberFace(7)), new NumberDie(new NumberFace(5), new NumberFace(7)) }); + dgm.Add(toAdd); + dgm.Remove(toAdd); + + Xunit.Assert.DoesNotContain(toAdd, dgm.GetAll()); + } + + [Fact] + public void TestRemoveFailsSilentlyIfGivenNonExistent() + { + DiceGroupManager dgm = new(); + KeyValuePair> toAdd = new("Monopoly", new List { new NumberDie(new NumberFace(5), new NumberFace(7)), new NumberDie(new NumberFace(5), new NumberFace(7)) }); + dgm.Add(toAdd); + + KeyValuePair> toAdd2 = new("Scrabble", new List { new NumberDie(new NumberFace(5), new NumberFace(7)), new NumberDie(new NumberFace(5), new NumberFace(7)) }); + + // Act + dgm.Remove(toAdd2); + + // Assert + Xunit.Assert.DoesNotContain(toAdd2, dgm.GetAll()); + } + + [Fact] + public void TestUpdateWorksIfValid() + { + // Arrange + DiceGroupManager dgm = new(); + KeyValuePair> toAdd = new("Monopoly", new List { new NumberDie(new NumberFace(5), new NumberFace(7)), new NumberDie(new NumberFace(5), new NumberFace(7)) }); + dgm.Add(toAdd); + KeyValuePair> toAdd2 = new("Scrabble", new List { new NumberDie(new NumberFace(5), new NumberFace(7)), new NumberDie(new NumberFace(5), new NumberFace(7)) }); + dgm.Update(toAdd, toAdd2); + + Xunit.Assert.DoesNotContain(toAdd, dgm.GetAll()); + Xunit.Assert.Contains(toAdd2, dgm.GetAll()); + Xunit.Assert.True(dgm.GetAll().Count() == 1); + } + + + + + + + + + + + + }