public async Task ReturnFailureResultForMissingGameId()
        {
            var playerRepo = CreatePlayersRepoMock();
            var validator  = new PlayerRequestValidator(playerRepo);

            var request = new PlayerRequestConcrete
            {
                UserId = 1
            };

            var result = await validator.Validate(request);

            Assert.False(result.IsSuccessful);
            Assert.Equal(ValidatorErrors.Games.GameIdRequired, result.Error);
        }
        public async Task ReturnSuccessResultForValidData()
        {
            var playerRepo = CreatePlayersRepoMock();
            var validator  = new PlayerRequestValidator(playerRepo);

            var request = new PlayerRequestConcrete
            {
                UserId = 1,
                GameId = 1
            };

            var result = await validator.Validate(request);

            Assert.True(result.IsSuccessful);
            Assert.Null(result.Error);
        }
        public async Task ReturnFailureResultForInactivePlayer()
        {
            var playerRepo = CreatePlayersRepoMock(
                isPlayerActive: false);
            var validator = new PlayerRequestValidator(playerRepo);

            var request = new PlayerRequestConcrete
            {
                UserId = 1,
                GameId = 1
            };

            var result = await validator.Validate(request);

            Assert.False(result.IsSuccessful);
            Assert.Equal(ValidatorErrors.Games.PlayerNotActive, result.Error);
        }