public async Task <IActionResult> AddContactDetailsForCustomer(Guid id, AddContactDetailsForCustomerCommand command) { if (!await _customerDataService.CustomerExists(id)) { return(new NotFoundObjectResult("Customer")); } try { await _addContactDetailsForCustomerCommandHandler.Handle(command); return(NoContent()); } catch (ValidationException exception) { return(BadRequest(exception.Errors)); } }
public async Task GIVEN_customer_with_id_GIVEN_valid_command_WHEN_add_contact_details_THEN_adds_contact_details_to_customer(Guid customerId, AddContactDetailsForCustomerCommand command) { A.CallTo(() => _customerDataService.CustomerExists(customerId)).Returns(true); var result = await _sut.AddContactDetailsForCustomer(customerId, command); Assert.IsType <NoContentResult>(result); A.CallTo(() => _addContactDetailsForCustomerCommandHandler.Handle(command)).MustHaveHappened(); }
public async Task GIVEN_customer_with_id_GIVEN_invalid_command_WHEN_add_contact_details_THEN_returns_BadRequest(Guid customerId, AddContactDetailsForCustomerCommand command) { A.CallTo(() => _customerDataService.CustomerExists(customerId)).Returns(true); var validationFailures = new [] { new ValidationFailure(nameof(AddContactDetailsForCustomerCommand.ContactInformation.Value), "required") }; A.CallTo(() => _addContactDetailsForCustomerCommandHandler.Handle(command)).Throws(new ValidationException(validationFailures)); var result = await _sut.AddContactDetailsForCustomer(customerId, command); var badRequestResult = Assert.IsType <BadRequestObjectResult>(result); Assert.Equal(validationFailures, badRequestResult.Value); }
public async Task GIVEN_no_customer_with_id_WHEN_add_contact_details_THEN_returns_NotFound(Guid customerId, AddContactDetailsForCustomerCommand command) { A.CallTo(() => _customerDataService.CustomerExists(customerId)).Returns(false); var result = await _sut.AddContactDetailsForCustomer(customerId, command); Assert.IsType <NotFoundObjectResult>(result); }