diff --git a/Sources/Data/Stub.cs b/Sources/Data/Stub.cs index 0f6197e..988a303 100644 --- a/Sources/Data/Stub.cs +++ b/Sources/Data/Stub.cs @@ -62,15 +62,15 @@ namespace Data GameRunner gameRunner = new(globalPlayerManager, globalDieManager, games); - game1.AddPlayerToGame(player1); - game1.AddPlayerToGame(player2); + game1.PlayerManager.Add(player1); + game1.PlayerManager.Add(player2); - game2.AddPlayerToGame(player1); - game2.AddPlayerToGame(player2); - game2.AddPlayerToGame(player3); + game2.PlayerManager.Add(player1); + game2.PlayerManager.Add(player2); + game2.PlayerManager.Add(player3); - game3.AddPlayerToGame(player1); - game3.AddPlayerToGame(player3); + game3.PlayerManager.Add(player1); + game3.PlayerManager.Add(player3); foreach (Game game in games) { diff --git a/Sources/Model/Games/Game.cs b/Sources/Model/Games/Game.cs index ba75d6a..9ed1d40 100644 --- a/Sources/Model/Games/Game.cs +++ b/Sources/Model/Games/Game.cs @@ -52,7 +52,7 @@ namespace Model.Games /// /// the game's player manager, doing CRUD on players and switching whose turn it is /// - private readonly IManager playerManager; + public IManager PlayerManager { get; private set; } /// /// the group of dice used for this game @@ -71,8 +71,8 @@ namespace Model.Games public Game(string name, IManager playerManager, IEnumerable> dice, IEnumerable turns) { Name = name; + PlayerManager = playerManager; this.turns = turns is null ? new List() : turns.ToList(); - this.playerManager = playerManager; this.dice = dice; this.nextIndex = 0; } @@ -116,11 +116,11 @@ namespace Model.Games /// public Player GetWhoPlaysNow() { - if (!playerManager.GetAll().Any()) + if (!PlayerManager.GetAll().Any()) { throw new MemberAccessException("you are exploring an empty collection\nthis should not have happened"); } - return playerManager.GetAll().ElementAt(nextIndex); + return PlayerManager.GetAll().ElementAt(nextIndex); } /// @@ -132,7 +132,8 @@ namespace Model.Games /// public void PrepareNextPlayer(Player current) { - if (!playerManager.GetAll().Any()) + IEnumerable players = PlayerManager.GetAll(); + if (!players.Any()) { throw new MemberAccessException("you are exploring an empty collection\nthis should not have happened"); } @@ -140,11 +141,11 @@ namespace Model.Games { throw new ArgumentNullException(nameof(current), "param should not be null"); } - if (!playerManager.GetAll().Contains(current)) + if (!players.Contains(current)) { throw new ArgumentException("param could not be found in this collection\n did you forget to add it?", nameof(current)); } - if (playerManager.GetAll().Last() == current) + if (players.Last() == current) { // if we've reached the last player, we need the index to loop back around nextIndex = 0; @@ -170,26 +171,6 @@ namespace Model.Games return faces; } - public Player AddPlayerToGame(Player player) - { - return playerManager.Add(player); - } - - public IEnumerable GetPlayersFromGame() - { - return playerManager.GetAll(); - } - - public Player UpdatePlayerInGame(Player oldPlayer, Player newPlayer) - { - return playerManager.Update(oldPlayer, newPlayer); - } - - public void RemovePlayerFromGame(Player player) - { - playerManager.Remove(player); - } - /// /// represents a Game in string format /// @@ -200,7 +181,7 @@ namespace Model.Games sb.Append($"Game: {Name}"); sb.Append("\nPlayers:"); - foreach (Player player in GetPlayersFromGame()) + foreach (Player player in PlayerManager.GetAll()) { sb.Append($" {player.ToString()}"); } diff --git a/Sources/Tests/Model_UTs/GameTest.cs b/Sources/Tests/Model_UTs/GameTest.cs index db90cb6..6eddc05 100644 --- a/Sources/Tests/Model_UTs/GameTest.cs +++ b/Sources/Tests/Model_UTs/GameTest.cs @@ -144,8 +144,8 @@ namespace Tests.Model_UTs { // Arrange Game game = new(name: GAME_NAME, playerManager: new PlayerManager(), dice: DICE); - game.AddPlayerToGame(PLAYER_1); - game.AddPlayerToGame(PLAYER_2); + game.PlayerManager.Add(PLAYER_1); + game.PlayerManager.Add(PLAYER_2); int n = 5; @@ -172,8 +172,8 @@ namespace Tests.Model_UTs { // Arrange Game game = new(name: GAME_NAME, playerManager: new PlayerManager(), dice: DICE); - game.AddPlayerToGame(PLAYER_1); - game.AddPlayerToGame(PLAYER_2); + game.PlayerManager.Add(PLAYER_1); + game.PlayerManager.Add(PLAYER_2); // Act Player actual = game.GetWhoPlaysNow(); @@ -221,7 +221,7 @@ namespace Tests.Model_UTs { // Arrange Game game = new(name: GAME_NAME, playerManager: new PlayerManager(), dice: DICE); - game.AddPlayerToGame(PLAYER_1); + game.PlayerManager.Add(PLAYER_1); // Act void action() => game.PrepareNextPlayer(null); @@ -235,7 +235,7 @@ namespace Tests.Model_UTs { // Arrange Game game = new(name: GAME_NAME, playerManager: new PlayerManager(), dice: DICE); - game.AddPlayerToGame(PLAYER_2); + game.PlayerManager.Add(PLAYER_2); // Act void action() => game.PrepareNextPlayer(PLAYER_3); @@ -249,8 +249,8 @@ namespace Tests.Model_UTs { // Arrange Game game = new(name: GAME_NAME, playerManager: new PlayerManager(), dice: DICE); - game.AddPlayerToGame(PLAYER_1); - game.AddPlayerToGame(PLAYER_2); + game.PlayerManager.Add(PLAYER_1); + game.PlayerManager.Add(PLAYER_2); // Act Player expected = PLAYER_2; @@ -269,7 +269,7 @@ namespace Tests.Model_UTs { // Arrange Game game = new(name: GAME_NAME, playerManager: new PlayerManager(), dice: DICE); - game.AddPlayerToGame(PLAYER_1); + game.PlayerManager.Add(PLAYER_1); // Act Player expected = PLAYER_1; @@ -291,7 +291,7 @@ namespace Tests.Model_UTs // Act Player expected = PLAYER_1; - Player actual = game.AddPlayerToGame(PLAYER_1); + Player actual = game.PlayerManager.Add(PLAYER_1); // Assert Assert.Equal(expected, actual); @@ -304,11 +304,11 @@ namespace Tests.Model_UTs Game game = new(name: GAME_NAME, playerManager: new PlayerManager(), dice: DICE); // Act - Assert.Empty(game.GetPlayersFromGame()); - game.AddPlayerToGame(PLAYER_1); + Assert.Empty(game.PlayerManager.GetAll()); + game.PlayerManager.Add(PLAYER_1); // Assert - Assert.Single(game.GetPlayersFromGame()); + Assert.Single(game.PlayerManager.GetAll()); } [Fact] @@ -316,11 +316,11 @@ namespace Tests.Model_UTs { // Arrange Game game = new(name: GAME_NAME, playerManager: new PlayerManager(), dice: DICE); - game.AddPlayerToGame(PLAYER_1); + game.PlayerManager.Add(PLAYER_1); // Act Player expected = PLAYER_2; - Player actual = game.UpdatePlayerInGame(PLAYER_1, PLAYER_2); + Player actual = game.PlayerManager.Update(PLAYER_1, PLAYER_2); // Assert Assert.Equal(expected, actual); @@ -331,13 +331,13 @@ namespace Tests.Model_UTs { // Arrange Game game = new(name: GAME_NAME, playerManager: new PlayerManager(), dice: DICE); - game.AddPlayerToGame(PLAYER_1); - game.AddPlayerToGame(PLAYER_2); - game.RemovePlayerFromGame(PLAYER_1); + game.PlayerManager.Add(PLAYER_1); + game.PlayerManager.Add(PLAYER_2); + game.PlayerManager.Remove(PLAYER_1); // Act IEnumerable expected = new List() { PLAYER_2 }.AsEnumerable(); - IEnumerable actual = game.GetPlayersFromGame(); + IEnumerable actual = game.PlayerManager.GetAll(); // Assert Assert.Equal(expected, actual); @@ -366,8 +366,8 @@ namespace Tests.Model_UTs }; Game game = new(name: GAME_NAME, playerManager: new PlayerManager(), dice: DICE, turns: turns); - game.AddPlayerToGame(PLAYER_1); - game.AddPlayerToGame(PLAYER_2); + game.PlayerManager.Add(PLAYER_1); + game.PlayerManager.Add(PLAYER_2); // Act string[] dateTimeString = dateTime.ToString("s", System.Globalization.CultureInfo.InvariantCulture).Split("T");