public static Mock <IGamesRepository> Create( bool gameExists = true, bool isGameOwner = true, bool gameIsActive = true, Common.Enums.GameStatusEnum gameStatus = Common.Enums.GameStatusEnum.InProgress, bool gameNameInUse = false) { var mock = new Mock <IGamesRepository>(); mock.Setup(m => m.GetGameById(It.IsAny <int>())).Returns(() => { if (!gameExists) { return(Task.FromResult <GameModel>(null)); } return(Task.FromResult(new GameModel { OwnerId = isGameOwner ? MockConstants.GameOwnerId : int.MaxValue, Status = gameIsActive ? Common.Enums.GameStatusEnum.InProgress : Common.Enums.GameStatusEnum.Cancelled, IsActive = gameIsActive })); }); mock.Setup(m => m.GetGameStatus(It.IsAny <int>())).Returns(() => { return(Task.FromResult(gameStatus)); }); mock.Setup(m => m.GameNameIsTaken(It.IsAny <string>(), It.IsAny <int>())).Returns(() => { return(Task.FromResult(gameNameInUse)); }); return(mock); }
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); }