public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "delete", Route = "Customers/{customerId}/Interactions/{interactionId}/actionplans/{actionplanId}/Outcomes/{outcomeId}")] HttpRequestMessage req, ILogger log, string customerId, string interactionId, string actionplanId, string outcomeId, [Inject] IResourceHelper resourceHelper, [Inject] IDeleteOutcomesHttpTriggerService outcomesDeleteService) { log.LogInformation("Delete Action Plan C# HTTP trigger function processed a request."); if (!Guid.TryParse(customerId, out var customerGuid)) { return(HttpResponseMessageHelper.BadRequest(customerGuid)); } if (!Guid.TryParse(interactionId, out var interactionGuid)) { return(HttpResponseMessageHelper.BadRequest(interactionGuid)); } if (!Guid.TryParse(actionplanId, out var actionplanGuid)) { return(HttpResponseMessageHelper.BadRequest(actionplanGuid)); } if (!Guid.TryParse(outcomeId, out var outcomesGuid)) { return(HttpResponseMessageHelper.BadRequest(outcomesGuid)); } var doesCustomerExist = await resourceHelper.DoesCustomerExist(customerGuid); if (!doesCustomerExist) { return(HttpResponseMessageHelper.NoContent(customerGuid)); } var doesInteractionExist = resourceHelper.DoesInteractionResourceExistAndBelongToCustomer(interactionGuid, customerGuid); if (!doesInteractionExist) { return(HttpResponseMessageHelper.NoContent(interactionGuid)); } var doesActionPlanExist = resourceHelper.DoesActionPlanResourceExistAndBelongToCustomer(actionplanGuid, interactionGuid, customerGuid); if (!doesActionPlanExist) { return(HttpResponseMessageHelper.NoContent(actionplanGuid)); } var outcome = await outcomesDeleteService.GetOutcomeForCustomerAsync(customerGuid, interactionGuid, actionplanGuid, outcomesGuid); if (outcome == null) { return(HttpResponseMessageHelper.NoContent(outcomesGuid)); } var outcomeDeleted = await outcomesDeleteService.DeleteAsync(outcome.OutcomeId.GetValueOrDefault()); return(!outcomeDeleted? HttpResponseMessageHelper.BadRequest(outcomesGuid) : HttpResponseMessageHelper.Ok()); }
public async Task PatchOutcomesHttpTrigger_ReturnsStatusCodeOK_WhenRequestIsNotValid() { _resourceHelper.DoesCustomerExist(Arg.Any <Guid>()).ReturnsForAnyArgs(true); _resourceHelper.DoesInteractionResourceExistAndBelongToCustomer(Arg.Any <Guid>(), Arg.Any <Guid>()).Returns(true); _resourceHelper.DoesActionPlanResourceExistAndBelongToCustomer(Arg.Any <Guid>(), Arg.Any <Guid>(), Arg.Any <Guid>()).Returns(true); _deleteOutcomesHttpTriggerService.GetOutcomeForCustomerAsync(Arg.Any <Guid>(), Arg.Any <Guid>(), Arg.Any <Guid>(), Arg.Any <Guid>()).Returns(Task.FromResult(_outcome).Result); _deleteOutcomesHttpTriggerService.DeleteAsync(Arg.Any <Guid>()).Returns(Task.FromResult(false).Result); var result = await RunFunction(ValidCustomerId, ValidInteractionId, ValidActionPlanId, ValidOutcomeId); // Assert Assert.IsInstanceOf <HttpResponseMessage>(result); Assert.AreEqual(HttpStatusCode.BadRequest, result.StatusCode); }