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));
        }
Esempio n. 2
0
        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();
        }
Esempio n. 6
0
 public IActionResult AddPlayer([Required][FromBody] NewPlayerDto model)
 {
     _gameFieldService.AddPlayer(model.Name);
     return(Ok());
 }