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");