Removed GameService.AddPlayer and it's usages. Updated tests, added tests for IsGameStarted
This commit is contained in:
@ -3,6 +3,7 @@ using Microsoft.Extensions.Logging;
|
||||
using NSubstitute;
|
||||
using pacMan.Exceptions;
|
||||
using pacMan.GameStuff;
|
||||
using pacMan.GameStuff.Items;
|
||||
using pacMan.Services;
|
||||
|
||||
namespace BackendTests.Services;
|
||||
@ -60,7 +61,7 @@ public class GameServiceTests
|
||||
public void JoinById_WhenIdNotExists()
|
||||
{
|
||||
var player = Players.Create("white");
|
||||
_service.AddPlayer(player, _spawns); // TODO obsolete
|
||||
_service.Games.Add(new pacMan.Services.Game(_spawns) { Players = new List<Player> { player } });
|
||||
|
||||
Assert.Throws<GameNotFoundException>(() => _service.JoinById(Guid.NewGuid(), player));
|
||||
}
|
||||
@ -69,58 +70,20 @@ public class GameServiceTests
|
||||
public void JoinById_WhenIdExists()
|
||||
{
|
||||
var player = Players.Create("white");
|
||||
var group = _service.AddPlayer(player, _spawns); // TODO obsolete
|
||||
var game = new pacMan.Services.Game(_spawns) { Players = new List<Player> { player } };
|
||||
_service.Games.Add(game);
|
||||
|
||||
|
||||
var player2 = Players.Create("black");
|
||||
var result = _service.JoinById(group.Id, player2);
|
||||
var result = _service.JoinById(_service.Games[0].Id, player2);
|
||||
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(result, Is.EqualTo(group));
|
||||
Assert.That(group.Players, Has.Count.EqualTo(2));
|
||||
Assert.That(result, Is.EqualTo(game));
|
||||
Assert.That(game.Players, Has.Count.EqualTo(2));
|
||||
Assert.That(_service.Games, Has.Count.EqualTo(1));
|
||||
});
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region AddPlayer(IPlayer)
|
||||
|
||||
[Test]
|
||||
public void AddPlayer_ToEmptyGroup()
|
||||
{
|
||||
var player = Players.Create("white");
|
||||
var group = _service.AddPlayer(player, _spawns); // TODO obsolete
|
||||
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(group.Players, Has.Count.EqualTo(1));
|
||||
Assert.That(group.NextPlayer, Is.EqualTo(player));
|
||||
Assert.That(_service.Games, Has.Count.EqualTo(1));
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void AddPlayer_ToFullGroup()
|
||||
{
|
||||
for (var i = 0; i < 4; i++)
|
||||
{
|
||||
var player = Players.Create(i.ToString());
|
||||
_service.AddPlayer(player, _spawns); // TODO obsolete
|
||||
}
|
||||
|
||||
var player5 = Players.Create("white");
|
||||
|
||||
var group = _service.AddPlayer(player5, new Queue<DirectionalPosition>(new[] { _spawn3By3Up }));
|
||||
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
Assert.That(group.Players, Has.Count.EqualTo(1));
|
||||
Assert.That(group.NextPlayer, Is.EqualTo(player5));
|
||||
Assert.That(_service.Games, Has.Count.EqualTo(2));
|
||||
Assert.That(_service.Games.First(), Has.Count.EqualTo(Rules.MaxPlayers));
|
||||
});
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
@ -61,13 +61,54 @@ public class GameTests
|
||||
|
||||
#endregion
|
||||
|
||||
#region IsGameStarted
|
||||
|
||||
[Test]
|
||||
public void IsGameStarted_WhenEmpty()
|
||||
{
|
||||
Assert.That(_game.IsGameStarted, Is.False);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void IsGameStarted_WhenNotAllInGame()
|
||||
{
|
||||
AddFullParty();
|
||||
Assert.That(_game.IsGameStarted, Is.False);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void IsGameStarted_WhenAllInGame()
|
||||
{
|
||||
AddFullParty();
|
||||
_game.Players.ForEach(player => player.State = State.InGame);
|
||||
Assert.That(_game.IsGameStarted, Is.True);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void IsGameStared_WhenAllDisconnected()
|
||||
{
|
||||
AddFullParty();
|
||||
_game.Players.ForEach(player => player.State = State.Disconnected);
|
||||
Assert.That(_game.IsGameStarted, Is.False);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void IsGameStarted_WhenHalfInGame()
|
||||
{
|
||||
AddFullParty();
|
||||
_game.Players.ForEach(player =>
|
||||
player.State = _game.Players.IndexOf(player) % 2 == 0 ? State.InGame : State.Disconnected);
|
||||
Assert.That(_game.IsGameStarted, Is.True);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region AddPlayer(Player player)
|
||||
|
||||
[Test]
|
||||
public void AddPlayer_WhenEmpty()
|
||||
{
|
||||
var added = _game.AddPlayer(_redPlayer);
|
||||
Assert.That(added, Is.True);
|
||||
Assert.DoesNotThrow(() => _game.AddPlayer(_redPlayer));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@ -75,8 +116,8 @@ public class GameTests
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
AddFullParty();
|
||||
Assert.That(_game.Players.Count, Is.EqualTo(Rules.MaxPlayers));
|
||||
Assert.That(_game.AddPlayer(_purplePlayer), Is.False);
|
||||
Assert.That(_game.Players, Has.Count.EqualTo(Rules.MaxPlayers));
|
||||
Assert.Throws<GameNotPlayableException>(() => _game.AddPlayer(_purplePlayer));
|
||||
});
|
||||
|
||||
[Test]
|
||||
@ -84,8 +125,7 @@ public class GameTests
|
||||
{
|
||||
var redClone = _redPlayer.Clone();
|
||||
_game.AddPlayer(_redPlayer);
|
||||
var added = _game.AddPlayer(redClone);
|
||||
Assert.That(added, Is.True);
|
||||
Assert.DoesNotThrow(() => _game.AddPlayer(redClone));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@ -114,7 +154,7 @@ public class GameTests
|
||||
_game.SetReady(_bluePlayer.Username);
|
||||
_game.SetAllInGame();
|
||||
|
||||
Assert.That(_game.AddPlayer(_greenPlayer), Is.False);
|
||||
Assert.Throws<GameNotPlayableException>(() => _game.AddPlayer(_greenPlayer));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
Reference in New Issue
Block a user