コード例 #1
0
        public void Update(ExtendGameDTO gameDto)
        {
            var game = GetGameById(gameDto.Id);

            if (game != null)
            {
                if (game.Price != gameDto.Price)
                {
                    var updateOrderDetails = _unitOfWork.OrderDetails.Get(g => g.Game.Key == gameDto.Key).ToList();
                    foreach (var orderDetails in updateOrderDetails)
                    {
                        orderDetails.Price = gameDto.Price * orderDetails.Quantity;
                        _unitOfWork.OrderDetails.Update(orderDetails);
                    }
                }

                game.Genres.Clear();
                game.PlatformTypes.Clear();

                game.Genres = _unitOfWork.Genres.Get(genre => gameDto.SelectedGenresName.Contains(genre.NameEn) ||
                                                     gameDto.SelectedGenresName.Contains(genre.NameRu)).ToList();
                game.PlatformTypes = _unitOfWork.PlatformTypes
                                     .Get(platformType => gameDto.SelectedPlatformTypesName.Contains(platformType.NameEn) ||
                                          gameDto.SelectedPlatformTypesName.Contains(platformType.NameRu)).ToList();

                _unitOfWork.Games.Update(game);
                game = _mapper.Map <Game>(gameDto);
                _unitOfWork.Games.Update(game);
                _unitOfWork.Save();

                _log.Info($"{nameof(GameService)} - update game {gameDto.Id}");
            }
        }
コード例 #2
0
        public void UpdateGame_Game_UpdateCalled()
        {
            var oldFakeGameDTO = new ExtendGameDTO()
            {
                Id = _fakeGameId, Key = "123", Price = 55
            };
            var oldFakeGame    = _mapper.Map <Game>(oldFakeGameDTO);
            var newFakeGameDTO = new ExtendGameDTO()
            {
                Id = _fakeGameId, Key = "12", Price = 5
            };
            var newFakeGame     = _mapper.Map <Game>(newFakeGameDTO);
            var fakeOrderDetail = new OrderDetail();

            _uow.Setup(uow => uow.Games.GetById(_fakeGameId)).Returns(oldFakeGame);
            _uow.Setup(uow => uow.Genres.Get(It.IsAny <Func <Genre, bool> >())).Returns(new List <Genre>());
            _uow.Setup(uow => uow.PlatformTypes.Get(It.IsAny <Func <PlatformType, bool> >()))
            .Returns(new List <PlatformType>());
            _uow.Setup(uow => uow.OrderDetails.Get(It.IsAny <Func <OrderDetail, bool> >()))
            .Returns(new List <OrderDetail>()
            {
                fakeOrderDetail
            });
            _uow.Setup(uow => uow.OrderDetails.Update(fakeOrderDetail));
            _uow.Setup(uow => uow.Games.Update(newFakeGame));

            _sut.Update(newFakeGameDTO);

            _uow.Verify(uow => uow.Games.Update(It.IsAny <Game>()), Times.Exactly(2));
        }
コード例 #3
0
        public bool IsUniqueKey(ExtendGameDTO gameExtendGameDto)
        {
            var game = _unitOfWork.Games.Get(x => x.Key == gameExtendGameDto.Key).FirstOrDefault();

            if (game == null || gameExtendGameDto.Id == game.Id)
            {
                return(true);
            }

            return(false);
        }
コード例 #4
0
        public void IsUniqueKey_NotUniqueKey_False()
        {
            var game = new ExtendGameDTO()
            {
                Id = Guid.NewGuid(), Key = _fakeGameKey
            };

            _uow.Setup(uow => uow.Games.Get(It.IsAny <Func <Game, bool> >())).Returns(_fakeGames);

            var res = _sut.IsUniqueKey(game);

            Assert.False(res);
        }
コード例 #5
0
        public void Get_Gamekey_GetByKeyCalled()
        {
            var fakeGame = new ExtendGameDTO()
            {
                Id = Guid.NewGuid(), Key = _fakeGameKey, NameEn = "test"
            };

            _gameService.Setup(service => service.GetByKey(_fakeGameKey)).Returns(fakeGame);

            _sut.GetGame(_fakeGameKey);

            _gameService.Verify(s => s.GetByKey(It.IsAny <string>()), Times.Once);
        }
コード例 #6
0
        public void Update_Gamekey_ReturnView()
        {
            var fakeGame = new ExtendGameDTO()
            {
                Id = Guid.NewGuid(), Key = _fakeGameKey, NameEn = "test"
            };

            _gameService.Setup(service => service.GetByKey(_fakeGameKey)).Returns(fakeGame);
            _publisherService.Setup(service => service.GetAll()).Returns(new List <PublisherDTO>());

            var res = _sut.Update(_fakeGameKey);

            Assert.IsType <ViewResult>(res);
        }
コード例 #7
0
        public void AddNew(ExtendGameDTO gameDto)
        {
            gameDto.Id = Guid.NewGuid();
            var newGame = _mapper.Map <Game>(gameDto);

            newGame.Genres = _unitOfWork.Genres.Get(genre => gameDto.SelectedGenresName.Contains(genre.NameEn) ||
                                                    gameDto.SelectedGenresName.Contains(genre.NameRu)).ToList();
            newGame.PlatformTypes = _unitOfWork.PlatformTypes
                                    .Get(platformType => gameDto.SelectedPlatformTypesName.Contains(platformType.NameEn) ||
                                         gameDto.SelectedPlatformTypesName.Contains(platformType.NameRu)).ToList();
            newGame.PublishDate = DateTime.UtcNow;

            _unitOfWork.Games.Create(newGame);
            _unitOfWork.Save();

            _log.Info($"{nameof(GameService)} - add new game {gameDto.Id}");
        }
コード例 #8
0
        public void AddGameToOrder_GameKeyWhereGameUnitsInStockLessThen1_ReturnedViewResult()
        {
            var fakeGameKey = "fakeGameKey";
            var fakeGame    = new ExtendGameDTO()
            {
                Id           = Guid.NewGuid(),
                Key          = fakeGameKey,
                UnitsInStock = 0
            };

            _gameService.Setup(service => service.GetByKey(fakeGameKey)).Returns(fakeGame);
            CurrentUser();

            var res = _sut.AddGameToOrder(fakeGameKey);

            Assert.IsType <ViewResult>(res);
        }
コード例 #9
0
        public void AddNewGame_GameWithUniqueKey_CreateCalled()
        {
            var fakeGameDTO = new ExtendGameDTO()
            {
                Id = Guid.NewGuid(), Key = "qweqwe", NameEn = "1", DescriptionEn = "2"
            };
            var fakeGame = _mapper.Map <Game>(fakeGameDTO);

            _uow.Setup(uow => uow.Games.Get(It.IsAny <Func <Game, bool> >())).Returns(new List <Game>());
            _uow.Setup(uow => uow.Genres.Get(It.IsAny <Func <Genre, bool> >())).Returns(new List <Genre>());
            _uow.Setup(uow => uow.PlatformTypes.Get(It.IsAny <Func <PlatformType, bool> >())).Returns(new List <PlatformType>());

            _uow.Setup(uow => uow.Games.Create(fakeGame));

            _sut.AddNew(fakeGameDTO);

            _uow.Verify(uow => uow.Games.Create(It.IsAny <Game>()), Times.Once);
        }
コード例 #10
0
        public void AddGameToOrder_GameKeyWhereGameUnitsInStockMorethen1_AddGameToOrderCalled()
        {
            var fakeGameKey = "fakeGameKey";
            var fakeUserId  = Guid.NewGuid();
            var fakeGameId  = Guid.NewGuid();
            var fakeGame    = new ExtendGameDTO()
            {
                Id           = Guid.NewGuid(),
                Key          = fakeGameKey,
                UnitsInStock = 5
            };

            _gameService.Setup(service => service.GetByKey(fakeGameKey)).Returns(fakeGame);
            _ordersService.Setup(service => service.AddNewOrderDetails(fakeUserId, fakeGameId));
            CurrentUser();

            _sut.AddGameToOrder(fakeGameKey);

            _ordersService.Verify(s => s.AddNewOrderDetails(It.IsAny <Guid>(), It.IsAny <Guid>()), Times.Once);
        }