예제 #1
0
        public async Task ReturnFailureForMissingName()
        {
            var baseMock  = BaseGameRequestsValidatorMock.CreateMock();
            var gameRepo  = GamesRepositoryMock.Create().Object;
            var validator = new CreateGameValidator(baseMock.Object, gameRepo);

            var request = new CreateGame
            {
                LanguageId       = 1,
                UserId           = 1,
                ShowAdultContent = true
            };

            var result = await validator.Validate(request);

            Assert.False(result.IsSuccessful);
            Assert.Equal(ValidatorErrors.Games.GameNameRequired, result.Error);
        }
예제 #2
0
        public async Task ReturnSuccessForValidData()
        {
            var gameRepoMock = GamesRepositoryMock.Create();

            var rule = new GameOwnerRule(gameRepoMock.Object);

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

            var result = await rule.Validate(request);

            Assert.NotNull(result);
            Assert.True(result.IsSuccessful);
            Assert.Null(result.Error);
        }
예제 #3
0
        public async Task ReturnFailureForUserOtherThanOwner()
        {
            var gameRepoMock = GamesRepositoryMock.Create(
                isGameOwner: false);

            var rule = new GameOwnerRule(gameRepoMock.Object);

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

            var result = await rule.Validate(request);

            Assert.NotNull(result);
            Assert.False(result.IsSuccessful);
            Assert.Equal(ValidatorErrors.Games.InvalidUserAction, result.Error);
        }
예제 #4
0
        public async Task ReturnFailureForUserThatAlreadyJoined()
        {
            var baseMock    = BaseGameRequestsValidatorMock.CreateMock();
            var gameRepo    = GamesRepositoryMock.Create().Object;
            var playersRepo = PlayersRepositoryMock.Create(
                playerExists: true).Object;
            var validator = new JoinGameValidator(baseMock.Object, gameRepo, playersRepo);

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

            var result = await validator.Validate(request);

            Assert.False(result.IsSuccessful);
            Assert.Equal(ValidatorErrors.Games.UserAlreadyJoined, result.Error);
        }
예제 #5
0
        public async Task ReturnSuccessForValidData()
        {
            var baseMock    = BaseGameRequestsValidatorMock.CreateMock();
            var gameRepo    = GamesRepositoryMock.Create().Object;
            var playersRepo = PlayersRepositoryMock.Create(
                playerExists: false).Object;
            var validator = new JoinGameValidator(baseMock.Object, gameRepo, playersRepo);

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

            var result = await validator.Validate(request);

            Assert.True(result.IsSuccessful);
            baseMock.Verify(x => x.Validate(request));
        }
예제 #6
0
        public async Task ReturnSuccessForValidData()
        {
            var baseMock  = BaseGameRequestsValidatorMock.CreateMock();
            var gameRepo  = GamesRepositoryMock.Create().Object;
            var validator = new CreateGameValidator(baseMock.Object, gameRepo);

            var request = new CreateGame
            {
                LanguageId       = 1,
                Name             = "Test",
                UserId           = 1,
                ShowAdultContent = true
            };

            var result = await validator.Validate(request);

            Assert.True(result.IsSuccessful);
            Assert.Null(result.Error);
            baseMock.Verify(x => x.Validate(request));
        }
예제 #7
0
        public async Task ReturnFailureForInvalidStatus(Common.Enums.GameStatusEnum gameStatus)
        {
            var baseMock     = BaseGameRequestsValidatorMock.CreateMock();
            var gameRepoMock = GamesRepositoryMock.Create(
                gameStatus: gameStatus);
            var gameOwnerRuleMock = GameOwnerRuleMock.Create <CancelGame>();

            var validator = new CancelGameValidator(baseMock.Object, gameOwnerRuleMock.Object, gameRepoMock.Object);

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

            var result = await validator.Validate(request);

            Assert.False(result.IsSuccessful);
            Assert.Equal(ValidatorErrors.Games.GameNotFoundOrInactive, result.Error);
        }
예제 #8
0
        public async Task ReturnSuccessForValidData()
        {
            var baseMock          = BaseGameRequestsValidatorMock.CreateMock();
            var gameRepoMock      = GamesRepositoryMock.Create();
            var gameOwnerRuleMock = GameOwnerRuleMock.Create <CancelGame>();

            var validator = new CancelGameValidator(baseMock.Object, gameOwnerRuleMock.Object, gameRepoMock.Object);

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

            var result = await validator.Validate(request);

            Assert.True(result.IsSuccessful);
            baseMock.Verify(x => x.Validate(request));
            gameOwnerRuleMock.Verify(x => x.Validate(request));
        }
예제 #9
0
        public async Task ReturnSuccessForGameOwner()
        {
            var gameRepoMock      = GamesRepositoryMock.Create();
            var gameRoundRepoMock = GameRoundsRepositoryMock.Create(
                isRoundOwner: false);
            var playersRepoMock = PlayersRepositoryMock.Create();

            var rule = new GameOrRoundOwnerRule(gameRepoMock.Object, gameRoundRepoMock.Object, playersRepoMock.Object);

            var request = new RequestConcrete
            {
                GameId      = 1,
                GameRoundId = 1,
                UserId      = 1
            };

            var result = await rule.Validate(request);

            Assert.NotNull(result);
            Assert.True(result.IsSuccessful);
            Assert.Null(result.Error);
        }