public async Task ValidateMoveAsync_FirstMove_CorrectMoveNumber() { // arrange var moveRepositoryMock = new Mock <IMoveRepository>(); moveRepositoryMock .Setup(m => m.GetMovesForGame(It.IsAny <string>(), CancellationToken.None)) .Returns(() => Task.FromResult(new List <Move>())) .Verifiable(); var gameManager = new MoveValidator(moveRepositoryMock.Object); // act MoveResult result = await gameManager.ValidateMoveAsync( new Move { GameId = "abc", BoardPosition = new Position { X = 0, Y = 0 }, TilePosition = new Position { X = 0, Y = 0 }, Player = Player.Cross }, CancellationToken.None); // assert result.Move.MoveNumber.Should().Be(1); }