Updated dependencies. Use new array initializer in C#. Added comments to alot of methods and classes

This commit is contained in:
martin
2023-12-06 23:43:21 +01:00
parent 2520a9ed94
commit 9991bac6fa
32 changed files with 458 additions and 160 deletions

View File

@ -13,9 +13,9 @@
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0"/>
<PackageReference Include="NSubstitute" Version="5.1.0"/>
<PackageReference Include="NUnit" Version="3.14.0"/>
<PackageReference Include="NUnit" Version="4.0.1" />
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0"/>
<PackageReference Include="NUnit.Analyzers" Version="3.9.0">
<PackageReference Include="NUnit.Analyzers" Version="3.10.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>

View File

@ -11,12 +11,10 @@ using pacMan.Utils;
namespace BackendTests.Controllers;
[TestFixture]
[TestOf(nameof(GameController))]
public class GameControllerTests
{
private IActionService _actionService = null!;
private GameController _controller = null!;
private GameService _gameService = null!;
[SetUp]
public void Setup()
{
@ -27,6 +25,10 @@ public class GameControllerTests
_controller = new GameController(Substitute.For<ILogger<GameController>>(), _gameService, _actionService);
}
private IActionService _actionService = null!;
private GameController _controller = null!;
private GameService _gameService = null!;
[Test]
public void Run_ReturnsSame()
{
@ -52,8 +54,6 @@ public class GameControllerTests
Assert.Fail("Result is not an ArraySegment<byte>");
}
#region DoAction(ActionMessage message)
[Test]
public void DoAction_NegativeAction()
{
@ -71,6 +71,4 @@ public class GameControllerTests
_controller.DoAction(message);
Assert.That(message.Data, Is.EqualTo(data));
}
#endregion
}

View File

@ -1,5 +1,9 @@
using pacMan.Controllers;
namespace BackendTests.Controllers;
[TestFixture]
[TestOf(nameof(PlayerController))]
public class PlayerControllerTests
{
// TODO

View File

@ -2,6 +2,8 @@ using pacMan.GameStuff.Items;
namespace BackendTests.Game.Items;
[TestFixture]
[TestOf(nameof(DiceCup))]
public class DiceCupTests
{
[Test]

View File

@ -2,6 +2,8 @@ using pacMan.GameStuff.Items;
namespace BackendTests.Game.Items;
[TestFixture]
[TestOf(nameof(Dice))]
public class DiceTests
{
[Test]

View File

@ -10,21 +10,10 @@ using pacMan.Services;
namespace BackendTests.Services;
[TestFixture]
[TestOf(nameof(ActionService))]
public class ActionServiceTests
{
private readonly Player _blackPlayer = Players.Create("black");
private readonly Player _redPlayer = Players.Create("red");
private readonly Player _whitePlayer = Players.Create("white");
private ActionMessage _blackMessage = null!;
private pacMan.Services.Game _game = null!;
private GameService _gameService = null!;
private ActionMessage _redMessage = null!;
private IActionService _service = null!;
private Queue<DirectionalPosition> _spawns = null!;
private ActionMessage _whiteMessage = null!;
[SetUp]
public void Setup()
{
@ -37,6 +26,18 @@ public class ActionServiceTests
_service = new ActionService(Substitute.For<ILogger<ActionService>>(), _gameService);
}
private readonly Player _blackPlayer = Players.Create("black");
private readonly Player _redPlayer = Players.Create("red");
private readonly Player _whitePlayer = Players.Create("white");
private ActionMessage _blackMessage = null!;
private pacMan.Services.Game _game = null!;
private GameService _gameService = null!;
private ActionMessage _redMessage = null!;
private IActionService _service = null!;
private Queue<DirectionalPosition> _spawns = null!;
private ActionMessage _whiteMessage = null!;
private JsonElement SerializeData(string username) =>
JsonDocument.Parse(JsonSerializer.Serialize(
new JoinGameData { Username = username, GameId = _game.Id }
@ -51,8 +52,6 @@ public class ActionServiceTests
new() { At = new Position { X = 9, Y = 9 }, Direction = Direction.Right }
});
#region RollDice()
[Test]
public void RollDice_ReturnsListOfIntegers()
{
@ -65,10 +64,6 @@ public class ActionServiceTests
});
}
#endregion
#region PlayerInfo(ActionMessage message)
[Test]
public void PlayerInfo_DataIsNull()
{
@ -98,10 +93,6 @@ public class ActionServiceTests
Assert.That(new List<Player> { _whitePlayer }, Is.EqualTo(players));
}
#endregion
#region Ready()
[Test]
public void Ready_PlayerIsNull()
{
@ -162,10 +153,6 @@ public class ActionServiceTests
Is.EqualTo(_blackPlayer.Username).Or.EqualTo(_whitePlayer.Username));
}
#endregion
#region FindNextPlayer()
[Test]
public void FindNextPlayer_NoPlayers()
{
@ -200,6 +187,4 @@ public class ActionServiceTests
var second = _service.FindNextPlayer();
Assert.That(second, Is.EqualTo(_whitePlayer.Username));
}
#endregion
}

View File

@ -3,19 +3,14 @@ using Microsoft.Extensions.Logging;
using NSubstitute;
using pacMan.Exceptions;
using pacMan.GameStuff;
using pacMan.GameStuff.Items;
using pacMan.Services;
namespace BackendTests.Services;
[TestFixture]
[TestOf(nameof(GameService))]
public class GameServiceTests
{
private readonly DirectionalPosition _spawn3By3Up = new()
{ At = new Position { X = 3, Y = 3 }, Direction = Direction.Up };
private GameService _service = null!;
private Queue<DirectionalPosition> _spawns = null!;
[SetUp]
public void SetUp()
{
@ -29,7 +24,11 @@ public class GameServiceTests
});
}
#region CreateAndJoin(IPlayer player, Queue<DirectionalPosition> spawns)
private readonly DirectionalPosition _spawn3By3Up = new()
{ At = new Position { X = 3, Y = 3 }, Direction = Direction.Up };
private GameService _service = null!;
private Queue<DirectionalPosition> _spawns = null!;
[Test]
public void CreateAndJoin_WhenEmpty()
@ -53,15 +52,11 @@ public class GameServiceTests
Assert.Throws<ArgumentException>(() => _service.CreateAndJoin(player, _spawns));
}
#endregion
#region JoinbyId(Guid id)
[Test]
public void JoinById_WhenIdNotExists()
{
var player = Players.Create("white");
_service.Games.Add(new pacMan.Services.Game(_spawns) { Players = new List<Player> { player } });
_service.Games.Add(new pacMan.Services.Game(_spawns) { Players = [player] });
Assert.Throws<GameNotFoundException>(() => _service.JoinById(Guid.NewGuid(), player));
}
@ -70,7 +65,7 @@ public class GameServiceTests
public void JoinById_WhenIdExists()
{
var player = Players.Create("white");
var game = new pacMan.Services.Game(_spawns) { Players = new List<Player> { player } };
var game = new pacMan.Services.Game(_spawns) { Players = [player] };
_service.Games.Add(game);
@ -84,6 +79,4 @@ public class GameServiceTests
Assert.That(_service.Games, Has.Count.EqualTo(1));
});
}
#endregion
}

View File

@ -6,8 +6,24 @@ using pacMan.Utils;
namespace BackendTests.Services;
[TestFixture]
[TestOf(nameof(pacMan.Services.Game))]
public class GameTests
{
[SetUp]
public void Setup()
{
_spawns = new Queue<DirectionalPosition>(
new[] { _spawn3By3Up, _spawn7By7Left, _spawn7By7Down, _spawn7By7Right });
_game = new pacMan.Services.Game(_spawns);
_redPlayer = Players.Create("red");
_bluePlayer = Players.Create("blue");
_yellowPlayer = Players.Create("yellow");
_greenPlayer = Players.Create("green");
_purplePlayer = Players.Create("purple");
}
private readonly DirectionalPosition _spawn3By3Up = new()
{ At = new Position { X = 3, Y = 3 }, Direction = Direction.Up };
@ -29,20 +45,6 @@ public class GameTests
private Queue<DirectionalPosition> _spawns = null!;
private Player _yellowPlayer = null!;
[SetUp]
public void Setup()
{
_spawns = new Queue<DirectionalPosition>(
new[] { _spawn3By3Up, _spawn7By7Left, _spawn7By7Down, _spawn7By7Right });
_game = new pacMan.Services.Game(_spawns);
_redPlayer = Players.Create("red");
_bluePlayer = Players.Create("blue");
_yellowPlayer = Players.Create("yellow");
_greenPlayer = Players.Create("green");
_purplePlayer = Players.Create("purple");
}
private void AddFullParty()
{
_game.AddPlayer(_bluePlayer);
@ -51,18 +53,12 @@ public class GameTests
_game.AddPlayer(_greenPlayer);
}
#region NextPlayer()
[Test]
public void NextPlayer_WhenEmpty()
{
Assert.Throws<InvalidOperationException>(() => _game.NextPlayer());
}
#endregion
#region IsGameStarted
[Test]
public void IsGameStarted_WhenEmpty()
{
@ -101,10 +97,6 @@ public class GameTests
Assert.That(_game.IsGameStarted, Is.True);
}
#endregion
#region AddPlayer(Player player)
[Test]
public void AddPlayer_WhenEmpty()
{
@ -157,10 +149,6 @@ public class GameTests
Assert.Throws<GameNotPlayableException>(() => _game.AddPlayer(_greenPlayer));
}
#endregion
#region Sendtoall(ArraySegment<byte> segment)
[Test]
public void SendToAll_WhenConnectionsIsNull()
{
@ -171,7 +159,6 @@ public class GameTests
public void SendToAll_WhenConnectionsIsNotNull()
{
var counter = 0;
async Task Send(ArraySegment<byte> segment) => await Task.Run(() => counter++);
_game.Connections += Send;
_game.Connections += Send;
@ -182,12 +169,11 @@ public class GameTests
while (counter < 2) { }
Assert.That(counter, Is.EqualTo(2));
return;
async Task Send(ArraySegment<byte> segment) => await Task.Run(() => counter++);
}
#endregion
#region SetReady(Player player)
[Test]
public void SetReady_ReturnsAllPlayers()
{
@ -222,10 +208,6 @@ public class GameTests
Assert.Throws<PlayerNotFoundException>(() => _game.SetReady(_redPlayer.Username));
}
#endregion
#region SetAllIngame()
[Test]
public void SetAllInGame_SetsStateToInGame()
{
@ -257,10 +239,6 @@ public class GameTests
Assert.That(_game.Players, Is.Empty);
}
#endregion
#region IsGameStarted()
[Test]
public void IsGameStarted_AllWaiting()
{
@ -275,6 +253,4 @@ public class GameTests
_game.Players.ForEach(player => player.State = State.InGame);
Assert.That(_game.IsGameStarted, Is.True);
}
#endregion
}

View File

@ -6,17 +6,17 @@ using pacMan.Utils;
namespace BackendTests.Services;
[TestFixture]
[TestOf(nameof(WebSocketService))]
public class WebSocketServiceTests
{
private IWebSocketService _service = null!;
[SetUp]
public void SetUp()
{
_service = new WebSocketService(Substitute.For<ILogger<WebSocketService>>());
}
#region Send(Websocket, ArraySegment<byte>)
private IWebSocketService _service = null!;
[Test]
public void Send_OpenWebsocket()
@ -47,10 +47,6 @@ public class WebSocketServiceTests
webSocket.Received().SendAsync(segment, WebSocketMessageType.Text, true, CancellationToken.None);
}
#endregion
#region Receive(Websocket, byte[])
[Test]
public void Receive_ExactBuffer()
{
@ -89,10 +85,6 @@ public class WebSocketServiceTests
webSocket.ReceivedWithAnyArgs().ReceiveAsync(default, CancellationToken.None);
}
#endregion
#region Close(Websocket, WebSocketCloseStatus, string?)
[Test]
public void Close_OpenWebsocket()
{
@ -123,6 +115,4 @@ public class WebSocketServiceTests
webSocket.ReceivedWithAnyArgs().CloseAsync(default, default, CancellationToken.None);
}
#endregion
}

View File

@ -3,9 +3,15 @@ using pacMan.Utils;
namespace BackendTests.Utils;
[TestFixture]
[TestOf(nameof(Extensions))]
public class ExtensionsTests
{
#region ToArraySegment(this object obj)
[SetUp]
public void Setup()
{
_bytes = "Hello World!"u8.ToArray();
}
[Test]
public void ToArraySegmentValidObject()
@ -24,18 +30,8 @@ public class ExtensionsTests
Assert.That(segment, Has.Count.EqualTo(4));
}
#endregion
#region GetString(this byte[] bytes, int length)
private byte[] _bytes = null!;
[SetUp]
public void Setup()
{
_bytes = "Hello World!"u8.ToArray();
}
[Test]
public void GetString_ValidByteArray()
{
@ -65,6 +61,4 @@ public class ExtensionsTests
{
Assert.That(_bytes.GetString(_bytes.Length / 2), Is.EqualTo("Hello "));
}
#endregion
}