using Giants.Application; using Giants.Core.Commands; using Giants.Core.Interfaces; using Giants.Infrastructure; namespace Giants.Core.Tests; public class PrepareMatchCommandTest { private readonly IMatchRepository _repo; public PrepareMatchCommandTest() { IHexagonalGrid _grid = new HexagonalGridImpl(); BoardLayout layout = new BoardLayout(_grid); _repo = new MatchRepositoryMock(layout); } [Fact] void SimpleInit() { NewMatchCommand command = new NewMatchCommand(_repo); NewMatchResult result = command.Execute(); Match? m = result.Match; Assert.NotNull(m); PrepareMatchCommand prepCommand = new PrepareMatchCommand() { InputMatch = m, PlayerIDs = new List() { 12, 15, 5, 14, 9 } }; var resultPrep = prepCommand.Execute(); Assert.True(resultPrep.Success); Assert.NotNull(resultPrep?.Match); Player? p1 = resultPrep.Match.GetPlayer(0); Assert.NotNull(p1); Assert.Equal(5, p1.NbVisibleTribalTokenCount); Assert.Equal(0, p1.NbHiddenTribalTokenCount); Assert.Equal(1, p1.NbUrnTribalTokenCount); } }