Sets the spawn in the backend when player is created, and other fixes :p
This commit is contained in:
@ -11,27 +11,49 @@ namespace BackendTests.Services;
|
||||
|
||||
public class ActionServiceTests
|
||||
{
|
||||
private readonly IPlayer _blackPlayer = Players.Create("black");
|
||||
private readonly IPlayer _redPlayer = Players.Create("red");
|
||||
private readonly IPlayer _whitePlayer = Players.Create("white");
|
||||
private readonly Player _blackPlayer = (Player)Players.Create("black");
|
||||
private readonly Player _redPlayer = (Player)Players.Create("red");
|
||||
|
||||
private readonly Player _whitePlayer = (Player)Players.Create("white");
|
||||
private ActionMessage _blackMessage = null!;
|
||||
private ActionMessage _redMessage = null!;
|
||||
private IActionService _service = null!;
|
||||
|
||||
private Queue<DirectionalPosition> _spawns = null!;
|
||||
|
||||
private ActionMessage _whiteMessage = null!;
|
||||
private IWebSocketService _wssSub = null!;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
_spawns = CreateQueue();
|
||||
_whiteMessage = new ActionMessage
|
||||
{ Action = GameAction.PlayerInfo, Data = JsonSerializer.Serialize(_whitePlayer) };
|
||||
{
|
||||
Action = GameAction.PlayerInfo,
|
||||
Data = JsonSerializer.Serialize(new { Player = _whitePlayer, Spawns = CreateQueue() })
|
||||
};
|
||||
_blackMessage = new ActionMessage
|
||||
{ Action = GameAction.PlayerInfo, Data = JsonSerializer.Serialize(_blackPlayer) };
|
||||
_redMessage = new ActionMessage { Action = GameAction.PlayerInfo, Data = JsonSerializer.Serialize(_redPlayer) };
|
||||
{
|
||||
Action = GameAction.PlayerInfo,
|
||||
Data = JsonSerializer.Serialize(new { Player = _blackPlayer, Spawns = CreateQueue() })
|
||||
};
|
||||
_redMessage = new ActionMessage
|
||||
{
|
||||
Action = GameAction.PlayerInfo,
|
||||
Data = JsonSerializer.Serialize(new { Player = _redPlayer, Spawns = CreateQueue() })
|
||||
};
|
||||
_wssSub = Substitute.For<WebSocketService>(Substitute.For<ILogger<WebSocketService>>());
|
||||
_service = new ActionService(Substitute.For<ILogger<ActionService>>(), _wssSub);
|
||||
}
|
||||
|
||||
private static Queue<DirectionalPosition> CreateQueue() =>
|
||||
new(new[]
|
||||
{
|
||||
new DirectionalPosition { At = new Position { X = 3, Y = 3 }, Direction = Direction.Up },
|
||||
new() { At = new Position { X = 7, Y = 7 }, Direction = Direction.Down }
|
||||
});
|
||||
|
||||
#region RollDice()
|
||||
|
||||
[Test]
|
||||
@ -74,6 +96,9 @@ public class ActionServiceTests
|
||||
{
|
||||
var players = _service.SetPlayerInfo(_whiteMessage);
|
||||
|
||||
var pos = _spawns.Dequeue();
|
||||
_whitePlayer.PacMan.Position = pos;
|
||||
_whitePlayer.PacMan.SpawnPosition = pos;
|
||||
Assert.That(new List<IPlayer> { _whitePlayer }, Is.EqualTo(players));
|
||||
}
|
||||
|
||||
@ -140,7 +165,7 @@ public class ActionServiceTests
|
||||
[Test]
|
||||
public void Ready_TwoReady()
|
||||
{
|
||||
var group = new GameGroup { Players = { _blackPlayer, _whitePlayer } };
|
||||
var group = new GameGroup(new Queue<DirectionalPosition>()) { Players = { _blackPlayer, _whitePlayer } };
|
||||
_service.Group = group;
|
||||
_service.Player = _blackPlayer;
|
||||
|
||||
|
@ -9,17 +9,34 @@ namespace BackendTests.Services;
|
||||
|
||||
public class GameGroupTests
|
||||
{
|
||||
private readonly DirectionalPosition _spawn3By3Up = new()
|
||||
{ At = new Position { X = 3, Y = 3 }, Direction = Direction.Up };
|
||||
|
||||
private readonly DirectionalPosition _spawn7By7Down = new()
|
||||
{ At = new Position { X = 7, Y = 7 }, Direction = Direction.Down };
|
||||
|
||||
private readonly DirectionalPosition _spawn7By7Left = new()
|
||||
{ At = new Position { X = 7, Y = 7 }, Direction = Direction.Left };
|
||||
|
||||
private readonly DirectionalPosition _spawn7By7Right = new()
|
||||
{ At = new Position { X = 7, Y = 7 }, Direction = Direction.Right };
|
||||
|
||||
private IPlayer _bluePlayer = null!;
|
||||
private GameGroup _gameGroup = null!;
|
||||
private IPlayer _greenPlayer = null!;
|
||||
private IPlayer _purplePlayer = null!;
|
||||
private IPlayer _redPlayer = null!;
|
||||
|
||||
private Queue<DirectionalPosition> _spawns = null!;
|
||||
private IPlayer _yellowPlayer = null!;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
_gameGroup = new GameGroup();
|
||||
_spawns = new Queue<DirectionalPosition>(
|
||||
new[] { _spawn3By3Up, _spawn7By7Left, _spawn7By7Down, _spawn7By7Right });
|
||||
|
||||
_gameGroup = new GameGroup(_spawns);
|
||||
_redPlayer = Players.Create("red");
|
||||
_bluePlayer = Players.Create("blue");
|
||||
_yellowPlayer = Players.Create("yellow");
|
||||
@ -70,6 +87,14 @@ public class GameGroupTests
|
||||
Assert.That(_redPlayer.State, Is.EqualTo(State.WaitingForPlayers));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void AddPlayer_AddSpawnPosition()
|
||||
{
|
||||
_gameGroup.AddPlayer(_redPlayer);
|
||||
Assert.That(_redPlayer.PacMan.SpawnPosition, Is.Not.Null);
|
||||
Assert.That(_redPlayer.PacMan.SpawnPosition, Is.EqualTo(_spawn3By3Up));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Sendtoall(ArraySegment<byte> segment)
|
||||
|
@ -11,12 +11,25 @@ namespace BackendTests.Services;
|
||||
|
||||
public class WebSocketServiceTests
|
||||
{
|
||||
private readonly DirectionalPosition _spawn3By3Up = new()
|
||||
{ At = new Position { X = 3, Y = 3 }, Direction = Direction.Up };
|
||||
|
||||
private IWebSocketService _service = null!;
|
||||
|
||||
private Queue<DirectionalPosition> _spawns = null!;
|
||||
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
_service = new WebSocketService(Substitute.For<ILogger<WebSocketService>>());
|
||||
_spawns = new Queue<DirectionalPosition>(new[]
|
||||
{
|
||||
_spawn3By3Up,
|
||||
new DirectionalPosition { At = new Position { X = 7, Y = 7 }, Direction = Direction.Down },
|
||||
new DirectionalPosition { At = new Position { X = 7, Y = 7 }, Direction = Direction.Down },
|
||||
new DirectionalPosition { At = new Position { X = 7, Y = 7 }, Direction = Direction.Down }
|
||||
});
|
||||
}
|
||||
|
||||
#region Send(Websocket, ArraySegment<byte>)
|
||||
@ -135,7 +148,7 @@ public class WebSocketServiceTests
|
||||
public void AddPlayer_ToEmptyGroup()
|
||||
{
|
||||
var player = Players.Create("white");
|
||||
var group = _service.AddPlayer(player);
|
||||
var group = _service.AddPlayer(player, _spawns);
|
||||
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
@ -151,12 +164,12 @@ public class WebSocketServiceTests
|
||||
for (var i = 0; i < 4; i++)
|
||||
{
|
||||
var player = Players.Create(i.ToString());
|
||||
_service.AddPlayer(player);
|
||||
_service.AddPlayer(player, _spawns);
|
||||
}
|
||||
|
||||
var player5 = Players.Create("white");
|
||||
|
||||
var group = _service.AddPlayer(player5);
|
||||
var group = _service.AddPlayer(player5, new Queue<DirectionalPosition>(new[] { _spawn3By3Up }));
|
||||
|
||||
Assert.Multiple(() =>
|
||||
{
|
||||
|
Reference in New Issue
Block a user