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