public async Task <IActionResult> Create(NewPlayerDto player) { var team = await _worldCupRepository.GetTeamAsync(player.TeamId, includePlayers : false); if (team == null) { return(BadRequest(new ProblemDetailsError(StatusCodes.Status400BadRequest, $"The Team with Id {player.TeamId} does not exist."))); } if (player.Description == "Evil") { throw new ArgumentException("this is evil code"); } var playerEntity = new Player { FirstName = player.FirstName, Description = player.Description, IsTopPlayer = player.IsTopPlayer, TeamId = player.TeamId }; await _worldCupRepository.CreatePlayerAsync(playerEntity); var result = Mapper.Map <PlayerDto>(playerEntity); return(CreatedAtRoute(GetPlayerRoute, new { id = result.Id }, result)); }
public async Task CreateNewPlayer_BadRequest_TestAsync() { //Arrange var player = new NewPlayerDto { FirstName = "Test Player", Description = "He plays for Codit.", IsTopPlayer = false }; var request = TestExtensions.GetJsonRequest(player, "POST", "/world-cup/v1/players"); //Act var response = await _httpClient.SendAsync(request); //Assert response.StatusCode.Should().Be(HttpStatusCode.BadRequest); }
public async Task ProblemJson_Validation_400_Test() { //Arrange var player = new NewPlayerDto { FirstName = "Test Player", Description = "He plays for Codit.", IsTopPlayer = false }; var request = TestExtensions.GetJsonRequest(player, "POST", "/world-cup/v1/players"); //Act var response = await _httpClient.SendAsync(request); //Assert response.StatusCode.Should().Be(HttpStatusCode.BadRequest); response.Content.Headers.ContentLength.Should().BeGreaterThan(0); response.ShouldBeProblemJson(); }
public async Task ProblemJson_UnsupportedContentType_415_Test() { //Arrange var player = new NewPlayerDto { FirstName = "Test Player", Description = "He plays for MUTD.", IsTopPlayer = false, TeamId = 1 }; var request = TestExtensions.GetJsonRequest(player, "POST", "/world-cup/v1/players", "application/pdf"); //Act var response = await _httpClient.SendAsync(request); //Assert response.StatusCode.Should().Be(HttpStatusCode.UnsupportedMediaType); response.Content.Headers.ContentLength.Should().BeGreaterThan(0); response.ShouldBeProblemJson(); }
public async Task ProblemJson_InternalServerError_500_Test() { //Arrange var player = new NewPlayerDto { FirstName = "Test Player", Description = "Evil", IsTopPlayer = false, TeamId = 1 }; var request = TestExtensions.GetJsonRequest(player, "POST", "/world-cup/v1/players"); //Act var response = await _httpClient.SendAsync(request); //Assert response.StatusCode.Should().Be(HttpStatusCode.InternalServerError); response.Content.Headers.ContentLength.Should().BeGreaterThan(0); response.ShouldBeProblemJson(); }
public IActionResult AddPlayer([Required][FromBody] NewPlayerDto model) { _gameFieldService.AddPlayer(model.Name); return(Ok()); }