public async Task GlobalMessageHandler_should_wrap_HttpError_in_WrappedApiError() { var handler = new GlobalMessageHandler(); var message = "foo"; var messageDetail = "bar"; handler.InnerHandler = new HttpErrorResponder(message, messageDetail); var request = new HttpRequestMessage(); var response = await handler.SendAsyncTestHook(request, new CancellationToken()); var result = await response.Content.ReadAsAsync <WrappedApiError <ApiError> >(); Assert.IsNotNull(result.Error); // Outer error should have correct code string and message Assert.AreEqual(response.StatusCode.ToString(), result.Error.Code); Assert.AreEqual(message, result.Error.Message); // Details should have correct code string and message detail Assert.AreEqual(1, result.Error.Details?.Length); Assert.AreEqual(response.StatusCode.ToString(), result.Error.Details?[0]?.Code); Assert.AreEqual(messageDetail, result.Error.Details?[0]?.Message); }
public async Task GlobalMessageHandler_should_pass_a_WrappedApiError_unmodified() { var handler = new GlobalMessageHandler(); handler.InnerHandler = new WrappedApiErrorResponder(); var request = new HttpRequestMessage(); var response = await handler.SendAsyncTestHook(request, new CancellationToken()); var result = await response.Content.ReadAsAsync <WrappedApiError <ForbiddenApiError> >(); Assert.IsNotNull(result.Error); Assert.AreEqual(HttpStatusCode.Forbidden.ToString(), result.Error.Code); }
public async Task GlobalMessageHandler_should_pass_Ok_Content_unmodified() { var handler = new GlobalMessageHandler(); handler.InnerHandler = new OkResponder(); var config = new HttpConfiguration(); var request = new HttpRequestMessage(); request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config; var response = await handler.SendAsyncTestHook(request, new CancellationToken()); var result = await response.Content.ReadAsAsync <BookDTO>(); Assert.IsNotNull(result); Assert.IsNotNull(result.Title); }