public static HttpResponseMessage MapToWebApiResult(this SimulatedErrorType type)
        {
            var message = type.GetMessage();

            switch (type)
            {
            case SimulatedErrorType.Result400:
                return(new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    ReasonPhrase = message,
                });

            case SimulatedErrorType.Result404:
                return(new HttpResponseMessage(HttpStatusCode.NotFound)
                {
                    ReasonPhrase = message,
                });

            case SimulatedErrorType.Result500:
                return(new HttpResponseMessage(HttpStatusCode.InternalServerError)
                {
                    ReasonPhrase = message,
                });

            case SimulatedErrorType.Result503:
                return(new HttpResponseMessage(HttpStatusCode.ServiceUnavailable)
                {
                    ReasonPhrase = message,
                });

            default:
                throw type.MapToException();
            }
        }
        public static Exception MapToException(this SimulatedErrorType type)
        {
            var message = type.GetMessage();

            switch (type)
            {
            case SimulatedErrorType.HttpException400:
                return(new HttpException(400, message));

            case SimulatedErrorType.HttpException404:
                return(new HttpException(404, message));

            case SimulatedErrorType.HttpException500:
                return(new HttpException(500, message));

            case SimulatedErrorType.HttpException503:
                return(new HttpException(503, message));

            case SimulatedErrorType.HttpResponseException400:
                return(new HttpResponseException(new HttpResponseMessage(HttpStatusCode.BadRequest)
                {
                    ReasonPhrase = message,
                }));

            case SimulatedErrorType.HttpResponseException404:
                return(new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)
                {
                    ReasonPhrase = message,
                }));

            case SimulatedErrorType.HttpResponseException500:
                return(new HttpResponseException(new HttpResponseMessage(HttpStatusCode.InternalServerError)
                {
                    ReasonPhrase = message,
                }));

            case SimulatedErrorType.HttpResponseException503:
                return(new HttpResponseException(new HttpResponseMessage(HttpStatusCode.ServiceUnavailable)
                {
                    ReasonPhrase = message,
                }));

            case SimulatedErrorType.Exception:
            case SimulatedErrorType.ExceptionInView:
            case SimulatedErrorType.ExceptionInInlineErrorPage:
            case SimulatedErrorType.ExceptionInDedicatedErrorPage:
                return(new Exception(message));

            case SimulatedErrorType.UserSafeException:
                return(new UserSafeException(message));

            case SimulatedErrorType.ReadOnlyMode:
                return(new ReadOnlyModeException(message));

            default:
                return(new Exception("Unknown simulated error type."));
            }
        }
Ejemplo n.º 3
0
        public virtual ActionResult SimulateError(SimulatedErrorType type = SimulatedErrorType.Exception)
        {
            switch (type)
            {
            case SimulatedErrorType.ExceptionInView:
                return(View(type));

            default:
                return(type.MapToMvcResult());
            }
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Asserts the response has no content or content type.
 /// </summary>
 public static Action <TestResponse> Empty(HttpStatusCode statusCode, SimulatedErrorType simulatedErrorType)
 {
     return(response =>
     {
         Assert.Equal(statusCode, response.StatusCode);
         Assert.Equal(GetSimulatedErrorReasonPhrase(simulatedErrorType), response.ReasonPhrase);
         Assert.Null(response.ContentTypeHeader);
         Assert.Null(response.LocationHeader);
         Assert.Equal(0, response.ContentLength);
         Assert.Empty(response.Content);
     });
 }
Ejemplo n.º 5
0
        public async Task SimulateError(EndpointType endpointType, SimulatedErrorType simulatedErrorType)
        {
            // Arrange
            var request = new SimulatedErrorRequest(endpointType, simulatedErrorType);

            // Act
            var response = await GetTestResponseAsync(request);

            // Assert
            if (!ExpectedSimulatedErrorResponses.TryGetValue(request, out var validator))
            {
                validator = Validator.PrettyInternalServerError();
            }

            validator(response);
        }
        public static ActionResult MapToMvcResult(this SimulatedErrorType type)
        {
            var message = type.GetMessage();

            switch (type)
            {
            case SimulatedErrorType.Result400:
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, message));

            case SimulatedErrorType.Result404:
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound, message));

            case SimulatedErrorType.Result500:
                return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, message));

            case SimulatedErrorType.Result503:
                return(new HttpStatusCodeResult(HttpStatusCode.ServiceUnavailable, message));

            default:
                throw type.MapToException();
            }
        }
Ejemplo n.º 7
0
 /// <summary>
 /// This is a short-hand for instantiating a <see cref="SimulatedErrorRequest"/>.
 /// </summary>
 private static SimulatedErrorRequest SER(EndpointType endpointType, SimulatedErrorType simulatedErrorType)
 {
     return(new SimulatedErrorRequest(endpointType, simulatedErrorType));
 }
Ejemplo n.º 8
0
 public virtual ActionResult SimulateError(SimulatedErrorType type = SimulatedErrorType.Exception)
 {
     return(type.MapToMvcResult());
 }
Ejemplo n.º 9
0
 private static string GetSimulatedErrorReasonPhrase(SimulatedErrorType simulatedErrorType)
 {
     return($"SimulatedErrorType {simulatedErrorType}");
 }
Ejemplo n.º 10
0
 /// <summary>
 /// Asserts the response is a simple HTML page with a reason phrase containing a simulated error type. This
 /// essentially is the behavior that NuGet client depends on to get error messages from HTTP responses. Error
 /// messages come back in the HTTP response reason phrase.
 /// </summary>
 public static Action <TestResponse> SimpleHtml(HttpStatusCode statusCode, SimulatedErrorType simulatedErrorType)
 {
     return(SimpleHtml(statusCode, GetSimulatedErrorReasonPhrase(simulatedErrorType)));
 }
 public SimulatedErrorRequest(EndpointType endpointType, SimulatedErrorType simulatedErrorType)
 {
     EndpointType       = endpointType;
     SimulatedErrorType = simulatedErrorType;
 }
 public static string GetMessage(this SimulatedErrorType type)
 {
     return($"{nameof(SimulatedErrorType)} {type}");
 }