示例#1
0
        public async Task Setup()
        {
            context = await TestDatabase.GetDatabaseContext();

            mockGamesRepository = new MockGamesRepository(context);
            mockAppsRepository  = new MockAppsRepository(context);
            mockUsersRepository = new MockUsersRepository(context);
            mockDifficultiesRepositorySuccessful = new MockDifficultiesRepository(context);
            mockDifficultiesRepositoryFailed     = new MockDifficultiesRepository(context);
            mockSolutionsRepository = new MockSolutionsRepository(context);

            sut = new GamesService(
                mockGamesRepository.GamesRepositorySuccessfulRequest.Object,
                mockAppsRepository.AppsRepositorySuccessfulRequest.Object,
                mockUsersRepository.UsersRepositorySuccessfulRequest.Object,
                mockDifficultiesRepositorySuccessful.DifficultiesRepositorySuccessfulRequest.Object,
                mockSolutionsRepository.SolutionsRepositorySuccessfulRequest.Object);

            sutFailure = new GamesService(
                mockGamesRepository.GamesRepositoryFailedRequest.Object,
                mockAppsRepository.AppsRepositorySuccessfulRequest.Object,
                mockUsersRepository.UsersRepositorySuccessfulRequest.Object,
                mockDifficultiesRepositorySuccessful.DifficultiesRepositorySuccessfulRequest.Object,
                mockSolutionsRepository.SolutionsRepositorySuccessfulRequest.Object);

            sutAnonFailure = new GamesService(
                mockGamesRepository.GamesRepositorySuccessfulRequest.Object,
                mockAppsRepository.AppsRepositorySuccessfulRequest.Object,
                mockUsersRepository.UsersRepositorySuccessfulRequest.Object,
                mockDifficultiesRepositoryFailed.DifficultiesRepositoryFailedRequest.Object,
                mockSolutionsRepository.SolutionsRepositorySuccessfulRequest.Object);

            sutUpdateFailure = new GamesService(
                mockGamesRepository.GamesRepositoryUpdateFailedRequest.Object,
                mockAppsRepository.AppsRepositorySuccessfulRequest.Object,
                mockUsersRepository.UsersRepositorySuccessfulRequest.Object,
                mockDifficultiesRepositorySuccessful.DifficultiesRepositorySuccessfulRequest.Object,
                mockSolutionsRepository.SolutionsRepositorySuccessfulRequest.Object);

            getGamesRequest = TestObjects.GetGamesRequest();
        }
        public MockGamesService(DatabaseContext context)
        {
            MockGamesRepository = new MockGamesRepository(context);

            GamesServiceSuccessfulRequest   = new Mock <IGamesService>();
            GamesServiceFailedRequest       = new Mock <IGamesService>();
            GamesServiceUpdateFailedRequest = new Mock <IGamesService>();

            GamesServiceSuccessfulRequest.Setup(gamesService =>
                                                gamesService.CreateGame(It.IsAny <CreateGameRequest>()))
            .Returns(Task.FromResult(new GameResult()
            {
                Success = MockGamesRepository
                          .GamesRepositorySuccessfulRequest
                          .Object
                          .Add(It.IsAny <Game>())
                          .Result
                          .Success,
                Message = GamesMessages.GameCreatedMessage,
                Game    = (Game)MockGamesRepository
                          .GamesRepositorySuccessfulRequest
                          .Object
                          .Add(It.IsAny <Game>())
                          .Result
                          .Object
            } as IGameResult));

            GamesServiceSuccessfulRequest.Setup(gamesService =>
                                                gamesService.UpdateGame(It.IsAny <int>(), It.IsAny <UpdateGameRequest>()))
            .Returns(Task.FromResult(new GameResult()
            {
                Success = MockGamesRepository
                          .GamesRepositorySuccessfulRequest
                          .Object
                          .Update(It.IsAny <Game>())
                          .Result
                          .Success,
                Message = GamesMessages.GameUpdatedMessage,
                Game    = (Game)MockGamesRepository
                          .GamesRepositorySuccessfulRequest
                          .Object
                          .Update(It.IsAny <Game>())
                          .Result
                          .Object
            } as IGameResult));

            GamesServiceSuccessfulRequest.Setup(gamesService =>
                                                gamesService.DeleteGame(It.IsAny <int>()))
            .Returns(Task.FromResult(new BaseResult()
            {
                Success = MockGamesRepository
                          .GamesRepositorySuccessfulRequest
                          .Object
                          .Delete(It.IsAny <Game>())
                          .Result
                          .Success,
                Message = GamesMessages.GameDeletedMessage
            } as IBaseResult));

            GamesServiceSuccessfulRequest.Setup(gamesService =>
                                                gamesService.GetGame(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <bool>()))
            .Returns(Task.FromResult(new GameResult()
            {
                Success = MockGamesRepository
                          .GamesRepositorySuccessfulRequest
                          .Object
                          .GetById(It.IsAny <int>(), It.IsAny <bool>())
                          .Result
                          .Success,
                Message = GamesMessages.GameFoundMessage,
                Game    = (Game)MockGamesRepository
                          .GamesRepositorySuccessfulRequest
                          .Object
                          .GetById(It.IsAny <int>(), It.IsAny <bool>())
                          .Result
                          .Object,
            } as IGameResult));

            GamesServiceSuccessfulRequest.Setup(gamesService =>
                                                gamesService.GetGames(It.IsAny <GamesRequest>(), It.IsAny <bool>()))
            .Returns(Task.FromResult(new GamesResult()
            {
                Success = MockGamesRepository
                          .GamesRepositorySuccessfulRequest
                          .Object
                          .GetAll(It.IsAny <bool>())
                          .Result
                          .Success,
                Message = GamesMessages.GamesFoundMessage,
                Games   = MockGamesRepository
                          .GamesRepositorySuccessfulRequest
                          .Object
                          .GetAll(It.IsAny <bool>())
                          .Result
                          .Objects
                          .ConvertAll(g => (IGame)g)
            } as IGamesResult));

            GamesServiceSuccessfulRequest.Setup(gamesService =>
                                                gamesService.GetMyGame(It.IsAny <int>(), It.IsAny <GamesRequest>(), It.IsAny <bool>()))
            .Returns(Task.FromResult(new GameResult()
            {
                Success = MockGamesRepository
                          .GamesRepositorySuccessfulRequest
                          .Object
                          .GetMyGame(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <bool>())
                          .Result
                          .Success,
                Message = GamesMessages.GameFoundMessage,
                Game    = (Game)MockGamesRepository
                          .GamesRepositorySuccessfulRequest
                          .Object
                          .GetMyGame(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <bool>())
                          .Result
                          .Object
            } as IGameResult));

            GamesServiceSuccessfulRequest.Setup(gamesService =>
                                                gamesService.GetMyGames(It.IsAny <GamesRequest>(), It.IsAny <bool>()))
            .Returns(Task.FromResult(new GamesResult()
            {
                Success = MockGamesRepository
                          .GamesRepositorySuccessfulRequest
                          .Object
                          .GetMyGames(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <bool>())
                          .Result
                          .Success,
                Message = GamesMessages.GamesFoundMessage,
                Games   = MockGamesRepository
                          .GamesRepositorySuccessfulRequest
                          .Object
                          .GetMyGames(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <bool>())
                          .Result
                          .Objects
                          .ConvertAll(g => (IGame)g)
            } as IGamesResult));

            GamesServiceSuccessfulRequest.Setup(gamesService =>
                                                gamesService.DeleteMyGame(It.IsAny <int>(), It.IsAny <GamesRequest>()))
            .Returns(Task.FromResult(new BaseResult()
            {
                Success = MockGamesRepository
                          .GamesRepositorySuccessfulRequest
                          .Object
                          .DeleteMyGame(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>())
                          .Result
                          .Success,
                Message = GamesMessages.GameDeletedMessage
            } as IBaseResult));

            GamesServiceSuccessfulRequest.Setup(gamesService =>
                                                gamesService.CheckGame(It.IsAny <int>(), It.IsAny <UpdateGameRequest>()))
            .Returns(Task.FromResult(new GameResult()
            {
                Success = MockGamesRepository
                          .GamesRepositorySuccessfulRequest
                          .Object
                          .Update(It.IsAny <Game>())
                          .Result
                          .Success,
                Message = GamesMessages.GameSolvedMessage,
                Game    = (Game)MockGamesRepository
                          .GamesRepositorySuccessfulRequest
                          .Object
                          .Update(It.IsAny <Game>())
                          .Result
                          .Object
            } as IGameResult));

            GamesServiceSuccessfulRequest.Setup(gamesService =>
                                                gamesService.CreateAnnonymousGame(It.IsAny <DifficultyLevel>()))
            .Returns(Task.FromResult(new AnnonymousGameResult()
            {
                Success      = true,
                Message      = GamesMessages.GameCreatedMessage,
                SudokuMatrix = new List <List <int> >(),
            } as IAnnonymousGameResult));

            GamesServiceSuccessfulRequest.Setup(gamesService =>
                                                gamesService.CheckAnnonymousGame(It.IsAny <List <int> >()))
            .Returns(Task.FromResult(new BaseResult()
            {
                Success = true,
                Message = GamesMessages.GameSolvedMessage
            } as IBaseResult));

            GamesServiceFailedRequest.Setup(gamesService =>
                                            gamesService.CreateGame(It.IsAny <CreateGameRequest>()))
            .Returns(Task.FromResult(new GameResult()
            {
                Success = MockGamesRepository
                          .GamesRepositoryFailedRequest
                          .Object
                          .Add(It.IsAny <Game>())
                          .Result
                          .Success,
                Message = GamesMessages.GameNotCreatedMessage,
                Game    = (Game)MockGamesRepository
                          .GamesRepositoryFailedRequest
                          .Object
                          .Add(It.IsAny <Game>())
                          .Result
                          .Object,
            } as IGameResult));

            GamesServiceFailedRequest.Setup(gamesService =>
                                            gamesService.UpdateGame(It.IsAny <int>(), It.IsAny <UpdateGameRequest>()))
            .Returns(Task.FromResult(new GameResult()
            {
                Success = MockGamesRepository
                          .GamesRepositoryFailedRequest
                          .Object
                          .Update(It.IsAny <Game>())
                          .Result
                          .Success,
                Message = GamesMessages.GameNotUpdatedMessage,
                Game    = (Game)MockGamesRepository
                          .GamesRepositoryFailedRequest
                          .Object
                          .Update(It.IsAny <Game>())
                          .Result
                          .Object
            } as IGameResult));

            GamesServiceFailedRequest.Setup(gamesService =>
                                            gamesService.DeleteGame(It.IsAny <int>()))
            .Returns(Task.FromResult(new BaseResult()
            {
                Success = MockGamesRepository
                          .GamesRepositoryFailedRequest
                          .Object
                          .Delete(It.IsAny <Game>())
                          .Result
                          .Success,
                Message = GamesMessages.GameNotDeletedMessage
            } as IBaseResult));

            GamesServiceFailedRequest.Setup(gamesService =>
                                            gamesService.GetGame(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <bool>()))
            .Returns(Task.FromResult(new GameResult()
            {
                Success = MockGamesRepository
                          .GamesRepositoryFailedRequest
                          .Object
                          .GetAppGame(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <bool>())
                          .Result
                          .Success,
                Message = GamesMessages.GameNotFoundMessage,
                Game    = (Game)MockGamesRepository
                          .GamesRepositoryFailedRequest
                          .Object
                          .GetAppGame(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <bool>())
                          .Result
                          .Object,
            } as IGameResult));

            GamesServiceFailedRequest.Setup(gamesService =>
                                            gamesService.GetGames(It.IsAny <GamesRequest>(), It.IsAny <bool>()))
            .Returns(Task.FromResult(new GamesResult()
            {
                Success = MockGamesRepository
                          .GamesRepositoryFailedRequest
                          .Object
                          .GetAppGames(It.IsAny <int>(), It.IsAny <bool>())
                          .Result
                          .Success,
                Message = GamesMessages.GamesNotFoundMessage,
                Games   = null
            } as IGamesResult));

            GamesServiceFailedRequest.Setup(gamesService =>
                                            gamesService.GetMyGame(It.IsAny <int>(), It.IsAny <GamesRequest>(), It.IsAny <bool>()))
            .Returns(Task.FromResult(new GameResult()
            {
                Success = MockGamesRepository
                          .GamesRepositoryFailedRequest
                          .Object
                          .GetMyGame(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <bool>())
                          .Result
                          .Success,
                Message = GamesMessages.GameNotFoundMessage,
                Game    = (Game)MockGamesRepository
                          .GamesRepositoryFailedRequest
                          .Object
                          .GetMyGame(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <bool>())
                          .Result
                          .Object
            } as IGameResult));

            GamesServiceFailedRequest.Setup(gamesService =>
                                            gamesService.GetMyGames(It.IsAny <GamesRequest>(), It.IsAny <bool>()))
            .Returns(Task.FromResult(new GamesResult()
            {
                Success = MockGamesRepository
                          .GamesRepositoryFailedRequest
                          .Object
                          .GetMyGame(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <bool>())
                          .Result
                          .Success,
                Message = GamesMessages.GamesNotFoundMessage,
                Games   = null
            } as IGamesResult));

            GamesServiceFailedRequest.Setup(gamesService =>
                                            gamesService.DeleteMyGame(It.IsAny <int>(), It.IsAny <GamesRequest>()))
            .Returns(Task.FromResult(new BaseResult()
            {
                Success = MockGamesRepository
                          .GamesRepositoryFailedRequest
                          .Object
                          .DeleteMyGame(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>())
                          .Result
                          .Success,
                Message = GamesMessages.GameNotDeletedMessage
            } as IBaseResult));

            GamesServiceFailedRequest.Setup(gamesService =>
                                            gamesService.CheckGame(It.IsAny <int>(), It.IsAny <UpdateGameRequest>()))
            .Returns(Task.FromResult(new GameResult()
            {
                Success = MockGamesRepository
                          .GamesRepositoryFailedRequest
                          .Object
                          .Update(It.IsAny <Game>())
                          .Result
                          .Success,
                Message = GamesMessages.GameNotUpdatedMessage,
                Game    = (Game)MockGamesRepository
                          .GamesRepositoryFailedRequest
                          .Object
                          .Update(It.IsAny <Game>())
                          .Result
                          .Object
            } as IGameResult));

            GamesServiceFailedRequest.Setup(gamesService =>
                                            gamesService.CreateAnnonymousGame(It.IsAny <DifficultyLevel>()))
            .Returns(Task.FromResult(new AnnonymousGameResult()
            {
                Success      = false,
                Message      = GamesMessages.GameNotCreatedMessage,
                SudokuMatrix = null,
            } as IAnnonymousGameResult));

            GamesServiceFailedRequest.Setup(gamesService =>
                                            gamesService.CheckAnnonymousGame(It.IsAny <List <int> >()))
            .Returns(Task.FromResult(new BaseResult()
            {
                Success = false,
                Message = GamesMessages.GameNotSolvedMessage
            } as IBaseResult));
        }