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); }
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); }
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); }
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); }
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)); }
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)); }
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); }
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)); }
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); }