public async Task ApproveFunding_Returns_OK_Result_Given_User_Has_Required_Permission() { SetupAuthorizedUser(SpecificationActionTypes.CanApproveFunding); _publishingApiClient.ApproveFundingForSpecification(Arg.Any <string>()).Returns(_validatedApiResponse); IActionResult result = await _publishController.ApproveFunding(ValidSpecificationId); result.Should().BeAssignableTo <OkObjectResult>(); }
public async Task <IActionResult> ApproveFunding(string specificationId) { if (!await _authorizationHelper.DoesUserHavePermission( User, specificationId, SpecificationActionTypes.CanApproveFunding)) { return(new ForbidResult()); } ValidatedApiResponse <JobCreationResponse> response = await _publishingApiClient.ApproveFundingForSpecification(specificationId); if (response.StatusCode == HttpStatusCode.PreconditionFailed) { return(new PreconditionFailedResult("Preconditions for this approval have not been met.")); } return(response.Handle("Release Funding", onSuccess: x => x.Content.JobId != null ? (IActionResult)Ok(new { jobId = x.Content.JobId }) : BadRequest())); }