diff --git a/src/LittleTown.Core.Tests/MatchTesting.cs b/src/LittleTown.Core.Tests/MatchTesting.cs index 8a3698a..824c7e4 100644 --- a/src/LittleTown.Core.Tests/MatchTesting.cs +++ b/src/LittleTown.Core.Tests/MatchTesting.cs @@ -17,6 +17,7 @@ public class MatchTesting Match match2 = new Match(getter); match2.AddPlayer("Player1"); match2.AddPlayer("Player2"); + Assert.Throws(() => match2.AddPlayer("Player2")); match2.Init(); Match match3 = new Match(getter); @@ -51,10 +52,23 @@ public class MatchTesting PlayerZone player1 = match.GetPlayerZone("Player1"); PlayerZone player1_3 = match.GetPlayerZone("Player2"); + Assert.Equal(3, player1.Ressources[Enums.ResourceType.Piece]); player1.AddRessources(ResourceType.Piece, 1); Assert.Equal(3, player1_3.Ressources[Enums.ResourceType.Piece]); Assert.Equal(4, player1.Objectives.Count); } + + [Fact] + public void MatchGetters() + { + StaticDataGetter getter = new(); + Match match = new Match(getter); + match.AddPlayer("Player1"); + match.AddPlayer("Player2"); + match.Init(); + + Assert.Throws(() => match.GetPlayerZone("UnknownPlayer")); + } } \ No newline at end of file diff --git a/src/LittleTown.Core.Tests/MatchUpdaterTesting.cs b/src/LittleTown.Core.Tests/MatchUpdaterTesting.cs deleted file mode 100644 index 6ea6d59..0000000 --- a/src/LittleTown.Core.Tests/MatchUpdaterTesting.cs +++ /dev/null @@ -1,36 +0,0 @@ -using LittleTown.Core.Actions; -using LittleTown.StaticDataAcces; - -namespace LittleTown.Core.Tests; - -public class MatchUpdaterTesting -{ - private class TestAction : IAction - { - public Action CB { get; init; } = delegate { }; - - public void Execute(MatchUpdater updater) - { - CB(updater); - } - } - - [Fact] - public void EnforcePlayerCountInMatchCreation() - { - StaticDataGetter getter = new StaticDataGetter(); - - Match match = new Match(getter); - match.AddPlayer("Player1"); - match.AddPlayer("Player2"); - match.Init(); - - TestAction ta = new TestAction() - { - CB = (updater) => - { - Assert.True(updater.GetMatch() == match); - } - }; - } -} \ No newline at end of file diff --git a/src/LittleTown.Core/MatchAggregate/Actions/EmptyAction.cs b/src/LittleTown.Core/MatchAggregate/Actions/EmptyAction.cs index 05da48d..44ad979 100644 --- a/src/LittleTown.Core/MatchAggregate/Actions/EmptyAction.cs +++ b/src/LittleTown.Core/MatchAggregate/Actions/EmptyAction.cs @@ -6,10 +6,10 @@ namespace LittleTown.Core.Actions; public class EmptyAction : IAction { /// - public void Execute(MatchUpdater updater) + public void Execute(Match match) { - ArgumentNullException.ThrowIfNull(updater); + ArgumentNullException.ThrowIfNull(match); - updater.NextPlayer(); + match.NextPlayer(); } } \ No newline at end of file diff --git a/src/LittleTown.Core/MatchAggregate/Actions/IAction.cs b/src/LittleTown.Core/MatchAggregate/Actions/IAction.cs index 011ae46..000e31a 100644 --- a/src/LittleTown.Core/MatchAggregate/Actions/IAction.cs +++ b/src/LittleTown.Core/MatchAggregate/Actions/IAction.cs @@ -8,6 +8,6 @@ public interface IAction /// /// Methode demandant a l'action d'appliquer ses changement au match /// - /// une interface permettant de modifier le match, elle est valide que la durée de l'appel d'execute - public void Execute(MatchUpdater updater); + /// le match a modifier avec cette action + public void Execute(Match match); } \ No newline at end of file diff --git a/src/LittleTown.Core/MatchAggregate/IMatchUpdater.cs b/src/LittleTown.Core/MatchAggregate/IMatchUpdater.cs deleted file mode 100644 index 43278d5..0000000 --- a/src/LittleTown.Core/MatchAggregate/IMatchUpdater.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace LittleTown.Core.Actions; - -using LittleTown.Core; -using LittleTown.Core.Enums; - -/// -/// Ceci est une structure offrant des méthodes pour modifier les données d'un match -/// Il permet aux actions de modifier des valeurs qui sont privées -/// -public class MatchUpdater -{ - /// Permet de récupérer le match qui sera modifié par cet updater - public required Func GetMatch { get; init; } - - /// Permet d'ajouter des ressources a un joueur - public required Action AddRessourceToPlayer { get; init; } - - /// demande au match de changer de joueur en cours - public required Action NextPlayer { get; init; } - -} \ No newline at end of file diff --git a/src/LittleTown.Core/MatchAggregate/Match.cs b/src/LittleTown.Core/MatchAggregate/Match.cs index 4da3b5e..f94365a 100644 --- a/src/LittleTown.Core/MatchAggregate/Match.cs +++ b/src/LittleTown.Core/MatchAggregate/Match.cs @@ -86,12 +86,7 @@ public class Match } //autoriser l'action a s'executer en lui donner les getters dont elle a besoin - action.Execute(new MatchUpdater() - { - GetMatch = () => { return this; }, - AddRessourceToPlayer = (resourceType) => { }, - NextPlayer = NextPlayer - }); + action.Execute(this); } /// Initialiser la partie, il faut avoir ajouté les joueurs au préalable @@ -171,7 +166,7 @@ public class Match } return result; } - private void NextPlayer() + public void NextPlayer() { _currentPlayerIndex++; if (_currentPlayerIndex >= _players.Count)