public void ValidCreateWorkerRequestReturnsNoErrorsOnValidation() { var createWorkerRequest = TestHelpers.CreateWorkerRequest(); var validator = new CreateWorkerRequestValidator(); var validationResponse = validator.Validate(createWorkerRequest); validationResponse.IsValid.Should().Be(true); }
public IActionResult CreateWorker([FromBody] CreateWorkerRequest request) { var validator = new CreateWorkerRequestValidator(); var validationResults = validator.Validate(request); if (!validationResults.IsValid) { return(BadRequest(validationResults.ToString())); } try { var createdWorker = _workersUseCase.ExecutePost(request); return(CreatedAtAction(nameof(CreateWorker), createdWorker)); } catch (PostWorkerException e) { return(UnprocessableEntity(e.Message)); } }
public void CreateWorkerValidationReturnsErrorsWithInvalidProperties() { const string longEmail = "*****@*****.**"; var badCreateWorkerRequests = new List <(CreateWorkerRequest, string)> { (TestHelpers.CreateWorkerRequest(email: ""), "Email address must be valid"), (TestHelpers.CreateWorkerRequest(email: longEmail), "Email address must be no longer than 62 characters"), (TestHelpers.CreateWorkerRequest(firstName: ""), "First name must be provided"), (TestHelpers.CreateWorkerRequest(firstName: _faker.Random.String2(101)), "First name must be no longer than 100 characters"), (TestHelpers.CreateWorkerRequest(lastName: ""), "Last name must be provided"), (TestHelpers.CreateWorkerRequest(lastName: _faker.Random.String2(101)), "Last name must be no longer than 100 characters"), (TestHelpers.CreateWorkerRequest(contextFlag: ""), $"Context flag must be provided{Environment.NewLine}Context flag must be 'A' or 'C'"), (TestHelpers.CreateWorkerRequest(contextFlag: "B"), "Context flag must be 'A' or 'C'"), (TestHelpers.CreateWorkerRequest(role: ""), "Role must be provided"), (TestHelpers.CreateWorkerRequest(role: _faker.Random.String2(201)), "Role provided is too long (more than 200 characters)"), (TestHelpers.CreateWorkerRequest(teamName: ""), "Team must be provided with a name"), (TestHelpers.CreateWorkerRequest(teamName: _faker.Random.String2(201)), "Team name must be no more than 200 characters"), (TestHelpers.CreateWorkerRequest(teamId: 0), "Team ID must be greater than 0"), (TestHelpers.CreateWorkerRequest(createATeam: false), "A team must be provided"), (TestHelpers.CreateWorkerRequest(createdByEmail: ""), "Created by email address must be valid"), (TestHelpers.CreateWorkerRequest(createdByEmail: longEmail), "Created by email address must be no longer than 62 characters") }; var validator = new CreateWorkerRequestValidator(); foreach (var(request, expectedErrorMessage) in badCreateWorkerRequests) { var validationResponse = validator.Validate(request); if (validationResponse == null) { throw new NullReferenceException(); } validationResponse.IsValid.Should().Be(false); validationResponse.ToString().Should().Be(expectedErrorMessage); } }