public void ValidCreateTeamRequestReturnsNoErrorsOnValidation() { var createTeamRequest = TestHelpers.CreateTeamRequest(); var validator = new CreateTeamRequestValidator(); var validationResponse = validator.Validate(createTeamRequest); validationResponse.IsValid.Should().Be(true); }
public void CreateTeamValidationReturnsErrorsWithInvalidProperties() { var badCreateTeamRequests = new List <(CreateTeamRequest, string)> { (TestHelpers.CreateTeamRequest(name: ""), "Team name must be provided"), (TestHelpers.CreateTeamRequest(name: _faker.Random.String2(201)), "Team name has a maximum length of 200 characters"), (TestHelpers.CreateTeamRequest(context: ""), $"Context flag must be provided{Environment.NewLine}Context flag must be 'A' or 'C'"), (TestHelpers.CreateTeamRequest(context: "B"), "Context flag must be 'A' or 'C'"), }; var validator = new CreateTeamRequestValidator(); foreach (var(request, expectedErrorMessage) in badCreateTeamRequests) { var validationResponse = validator.Validate(request); validationResponse.IsValid.Should().Be(false); validationResponse.ToString().Should().Be(expectedErrorMessage); } }
public IActionResult CreateTeam([FromBody] CreateTeamRequest request) { var validator = new CreateTeamRequestValidator(); var validationResults = validator.Validate(request); if (!validationResults.IsValid) { return(BadRequest(validationResults.ToString())); } try { var createdTeam = _teamsUseCase.ExecutePost(request); return(CreatedAtAction(nameof(CreateTeam), createdTeam)); } catch (PostTeamException e) { return(UnprocessableEntity(e.Message)); } }