public async Task SetsContentTypeHeader(JSendExceptionResult result) { // Exercise system var message = await result.ExecuteAsync(new CancellationToken()); // Verify outcome message.Content.Headers.ContentType.MediaType.Should().Be("application/json"); }
public async Task SetsStatusCode(JSendExceptionResult result) { // Exercise system var message = await result.ExecuteAsync(new CancellationToken()); // Verify outcome message.StatusCode.Should().Be(result.StatusCode); }
public async Task ResponseIsSerializedIntoBody(JSendExceptionResult result) { // Fixture setup var serializedResponse = JsonConvert.SerializeObject(result.Response); // Exercise system var httpResponse = await result.ExecuteAsync(new CancellationToken()); // Verify outcome var content = await httpResponse.Content.ReadAsStringAsync(); content.Should().Be(serializedResponse); }
/// <summary> /// Handles an exception by creating a <see cref="JSendExceptionResult"/> with the unhandled exception. /// </summary> /// <param name="actionExecutedContext">The context for the action.</param> /// <param name="cancellationToken">The token to monitor for cancellation requests.</param> /// <returns></returns> public override async Task OnExceptionAsync(HttpActionExecutedContext actionExecutedContext, CancellationToken cancellationToken) { if (actionExecutedContext == null) throw new ArgumentNullException("actionExecutedContext"); Contract.Assert(actionExecutedContext.Exception != null); var exception = actionExecutedContext.Exception; var includeErrorDetail = actionExecutedContext.Request.ShouldIncludeErrorDetail(); var request = actionExecutedContext.Request; var result = new JSendExceptionResult(exception, null, null, null, includeErrorDetail, request); actionExecutedContext.Response = await result.ExecuteAsync(cancellationToken); }
/// <summary> /// Handles an exception by creating a <see cref="JSendExceptionResult"/> with the unhandled exception. /// </summary> /// <param name="actionExecutedContext">The context for the action.</param> /// <param name="cancellationToken">The token to monitor for cancellation requests.</param> /// <returns></returns> public override async Task OnExceptionAsync(HttpActionExecutedContext actionExecutedContext, CancellationToken cancellationToken) { if (actionExecutedContext == null) { throw new ArgumentNullException("actionExecutedContext"); } Contract.Assert(actionExecutedContext.Exception != null); var exception = actionExecutedContext.Exception; var includeErrorDetail = actionExecutedContext.Request.ShouldIncludeErrorDetail(); var request = actionExecutedContext.Request; var result = new JSendExceptionResult(exception, null, null, null, includeErrorDetail, request); actionExecutedContext.Response = await result.ExecuteAsync(cancellationToken); }
public async Task SetsContentTypeHeader(JSendExceptionResult result) { // Exercise system var message = await result.ExecuteAsync(new CancellationToken()); // Verify outcome message.Content.Headers.ContentType.MediaType.Should().Be("application/json"); }
public async Task SetsStatusCode(JSendExceptionResult result) { // Exercise system var message = await result.ExecuteAsync(new CancellationToken()); // Verify outcome message.StatusCode.Should().Be(result.StatusCode); }
public async Task ResponseIsSerializedIntoBody(JSendExceptionResult result) { // Fixture setup var serializedResponse = JsonConvert.SerializeObject(result.Response); // Exercise system var httpResponseMessage = await result.ExecuteAsync(new CancellationToken()); // Verify outcome var content = await httpResponseMessage.Content.ReadAsStringAsync(); content.Should().Be(serializedResponse); }