ActionService tests and Equality
This commit is contained in:
@ -1,6 +1,11 @@
|
||||
using System.Text.Json;
|
||||
using BackendTests.TestUtils;
|
||||
using Microsoft.CSharp.RuntimeBinder;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using NSubstitute;
|
||||
using pacMan.Game;
|
||||
using pacMan.Game.Interfaces;
|
||||
using pacMan.Game.Items;
|
||||
using pacMan.Interfaces;
|
||||
using pacMan.Services;
|
||||
|
||||
@ -9,13 +14,13 @@ namespace BackendTests.Services;
|
||||
public class ActionServiceTests
|
||||
{
|
||||
private IActionService _service = null!;
|
||||
private IWebSocketService _wssMock = null!;
|
||||
private IWebSocketService _wssSub = null!;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
_wssMock = Substitute.For<WebSocketService>(Substitute.For<ILogger<WebSocketService>>());
|
||||
_service = new ActionService(Substitute.For<ILogger<ActionService>>(), _wssMock);
|
||||
_wssSub = Substitute.For<WebSocketService>(Substitute.For<ILogger<WebSocketService>>());
|
||||
_service = new ActionService(Substitute.For<ILogger<ActionService>>(), _wssSub);
|
||||
}
|
||||
|
||||
#region RollDice()
|
||||
@ -47,13 +52,26 @@ public class ActionServiceTests
|
||||
[Test]
|
||||
public void PlayerInfo_DataIsNotPlayer()
|
||||
{
|
||||
Assert.Fail();
|
||||
var message = new ActionMessage
|
||||
{
|
||||
Action = GameAction.PlayerInfo,
|
||||
Data = new Box { Colour = "white", Pellets = new List<Pellet>() }
|
||||
};
|
||||
Assert.Throws<RuntimeBinderException>(() => _service.PlayerInfo(message));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void PlayerInfo_DataIsPlayer()
|
||||
{
|
||||
Assert.Fail();
|
||||
var player = Players.Create("white");
|
||||
var message = new ActionMessage
|
||||
{
|
||||
Action = GameAction.PlayerInfo,
|
||||
Data = JsonSerializer.Serialize(player)
|
||||
};
|
||||
var players = _service.PlayerInfo(message);
|
||||
|
||||
Assert.That(new List<IPlayer> { player }, Is.EqualTo(players));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -1,7 +1,7 @@
|
||||
using BackendTests.TestUtils;
|
||||
using pacMan.Exceptions;
|
||||
using pacMan.Game;
|
||||
using pacMan.Game.Interfaces;
|
||||
using pacMan.Game.Items;
|
||||
using pacMan.Services;
|
||||
using pacMan.Utils;
|
||||
|
||||
@ -20,72 +20,13 @@ public class GameGroupTests
|
||||
public void Setup()
|
||||
{
|
||||
_gameGroup = new GameGroup();
|
||||
const string redColour = "red";
|
||||
_redPlayer = new Player
|
||||
{
|
||||
Name = "Red",
|
||||
Colour = redColour,
|
||||
PacMan = CreatePacMan(redColour),
|
||||
Box = CreateBox(redColour)
|
||||
};
|
||||
const string blueColour = "blue";
|
||||
_bluePlayer = new Player
|
||||
{
|
||||
Name = "Blue",
|
||||
Colour = blueColour,
|
||||
PacMan = CreatePacMan(blueColour),
|
||||
Box = CreateBox(blueColour)
|
||||
};
|
||||
const string yellowColour = "yellow";
|
||||
_yellowPlayer = new Player
|
||||
{
|
||||
Name = "Yellow",
|
||||
Colour = yellowColour,
|
||||
PacMan = CreatePacMan(yellowColour),
|
||||
Box = CreateBox(yellowColour)
|
||||
};
|
||||
const string greenColour = "green";
|
||||
_greenPlayer = new Player
|
||||
{
|
||||
Name = "Green",
|
||||
Colour = greenColour,
|
||||
PacMan = CreatePacMan(greenColour),
|
||||
Box = CreateBox(greenColour)
|
||||
};
|
||||
const string purpleColour = "purple";
|
||||
_purplePlayer = new Player
|
||||
{
|
||||
Name = "Purple",
|
||||
Colour = purpleColour,
|
||||
PacMan = CreatePacMan(purpleColour),
|
||||
Box = CreateBox(purpleColour)
|
||||
};
|
||||
_redPlayer = Players.Create("red");
|
||||
_bluePlayer = Players.Create("blue");
|
||||
_yellowPlayer = Players.Create("yellow");
|
||||
_greenPlayer = Players.Create("green");
|
||||
_purplePlayer = Players.Create("purple");
|
||||
}
|
||||
|
||||
private static Character CreatePacMan(string colour) =>
|
||||
new()
|
||||
{
|
||||
Colour = colour,
|
||||
IsEatable = true,
|
||||
Type = CharacterType.PacMan
|
||||
};
|
||||
|
||||
private static Box CreateBox(string colour) =>
|
||||
new()
|
||||
{
|
||||
Colour = colour,
|
||||
Pellets = new List<Pellet>()
|
||||
};
|
||||
|
||||
private static IPlayer Clone(IPlayer player) =>
|
||||
new Player
|
||||
{
|
||||
Box = player.Box,
|
||||
Colour = player.Colour,
|
||||
Name = player.Name,
|
||||
PacMan = player.PacMan
|
||||
};
|
||||
|
||||
private void AddFullParty()
|
||||
{
|
||||
_gameGroup.AddPlayer(_bluePlayer);
|
||||
@ -115,7 +56,7 @@ public class GameGroupTests
|
||||
[Test]
|
||||
public void AddPlayer_WhenNameExists()
|
||||
{
|
||||
var redClone = Clone(_redPlayer);
|
||||
var redClone = Players.Clone(_redPlayer);
|
||||
_gameGroup.AddPlayer(_redPlayer);
|
||||
var added = _gameGroup.AddPlayer(redClone);
|
||||
Assert.That(added, Is.True);
|
||||
|
Reference in New Issue
Block a user