public void ExecutePostCallsDatabaseGateway() { var createWorkerRequest = TestHelpers.CreateWorkerRequest(); var worker = TestHelpers.CreateWorker(firstName: createWorkerRequest.FirstName, lastName: createWorkerRequest.LastName, email: createWorkerRequest.EmailAddress, role: createWorkerRequest.Role); _mockDatabaseGateway.Setup(x => x.CreateWorker(createWorkerRequest)).Returns(worker); _workersUseCase.ExecutePost(createWorkerRequest); _mockDatabaseGateway.Verify(x => x.CreateWorker(createWorkerRequest)); _mockDatabaseGateway.Verify(x => x.CreateWorker(It.Is <CreateWorkerRequest>(w => w == createWorkerRequest)), Times.Once()); }
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)); } }