private async Task <JObject> GetRequestBody(HttpRequest req, ILogger log) { log.LogInformation("Attempting to read body from http request"); string requestBodyString; try { requestBodyString = await _httpRequestHelper.GetBodyFromHttpRequestAsync(req); } catch (Exception ex) { throw ApiFunctionException.BadRequest("Unable to read body from request", ex); } log.LogInformation("Attempting to deserialize request body"); JObject requestBody; if (string.IsNullOrWhiteSpace(requestBodyString)) { requestBodyString = "{}"; } try { requestBody = JObject.Parse(requestBodyString); } catch (Exception ex) { throw ApiFunctionException.UnprocessableEntityObjectResult("Unable to deserialize request body", ex); } return(requestBody); }
public async Task Execute_WhenUnableToReadRequestBody_ReturnsBadRequestObjectResult() { A.CallTo(() => _httpRequestHelper.GetBodyFromHttpRequestAsync(_request)).Throws <IOException>(); var result = await RunFunction(); var badRequestObjectResult = result as BadRequestObjectResult; // Assert Assert.IsAssignableFrom <IActionResult>(result); Assert.True(result is BadRequestObjectResult); Assert.Equal((int?)HttpStatusCode.BadRequest, badRequestObjectResult.StatusCode); }