示例#1
0
        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());
        }
示例#2
0
        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));
            }
        }