Пример #1
0
        public async Task CreateGame_ShouldReturnCreatedGame()
        {
            string             requestUrl      = "http://localhost:5000/api/games";
            string             imageUrl        = "http://localhost:5000";
            GameForCreatingDto gameForCreating = new GameForCreatingDto
            {
                Title       = "New Game",
                Description = "New Game by Company",
                Price       = 1000,
                PictureUrl  = "images/games/new_game.png",
                CompanyId   = 1,
                GenreId     = 1
            };

            var companies = await _testClient.GetJsonAsync <List <Company> >(requestUrl + "/companies");

            var genres = await _testClient.GetJsonAsync <List <Genre> >(requestUrl + "/genres");

            var companyForCreatedGame = companies.Find(x => x.Id == gameForCreating.CompanyId);
            var genreForCreatedGame   = genres.Find(x => x.Id == gameForCreating.GenreId);

            var createdGame = await _testClient.PostJsonAsync <GameToReturnDto>(requestUrl, gameForCreating);

            Assert.AreEqual("New Game", createdGame.Title);
            Assert.AreEqual("New Game by Company", createdGame.Description);
            Assert.AreEqual(1000, createdGame.Price);
            Assert.AreEqual(imageUrl + "/images/games/new_game.png", createdGame.PictureUrl);
            Assert.AreEqual(companyForCreatedGame.Name, createdGame.Company);
            Assert.AreEqual(genreForCreatedGame.Name, createdGame.Genre);
        }
Пример #2
0
        public async Task <ActionResult <GameToReturnDto> > CreateGame(
            [FromBody] GameForCreatingDto gameForCreating)
        {
            if (!await _gameCompaniesRepository.ExistsAsync(gameForCreating.CompanyId))
            {
                return(NotFound(new ApiResponse(404, "Company Not Found")));
            }

            if (!await _gameGenresRepository.ExistsAsync(gameForCreating.GenreId))
            {
                return(NotFound(new ApiResponse(404, "Genre Not Found")));
            }

            var game = _mapper.Map <Game>(gameForCreating);

            await _gamesRepository.AddAsync(game);

            await _gamesRepository.SaveAsync();

            var specification = new GameWithCompaniesAndGenresSpecification(game.Id);
            var gameToReturn  = await _gamesRepository.GetEntityWithSpecificationAsync(specification);

            return(Ok(_mapper.Map <GameToReturnDto>(gameToReturn)));
        }