public async Task PublishFunding_Returns_OK_Result_Given_User_Has_Required_Permission()
        {
            SetupAuthorizedUser(SpecificationActionTypes.CanReleaseFunding);
            _publishingApiClient.PublishFundingForSpecification(Arg.Any <string>()).Returns(_validatedApiResponse);

            IActionResult result = await _publishController.PublishFunding(ValidSpecificationId);

            result.Should().BeAssignableTo <OkObjectResult>();
        }
        public async Task <IActionResult> PublishFunding(string specificationId)
        {
            if (!await _authorizationHelper.DoesUserHavePermission(
                    User,
                    specificationId,
                    SpecificationActionTypes.CanReleaseFunding))
            {
                return(new ForbidResult());
            }

            ValidatedApiResponse <JobCreationResponse> response =
                await _publishingApiClient.PublishFundingForSpecification(specificationId);

            return(response.Handle("Release Funding",
                                   onSuccess: x => x.Content.JobId != null ? (IActionResult)Ok(x.Content.JobId) : BadRequest()));
        }