Пример #1
0
        public async Task HttpStatusCodeException_Constructor2()
        {
            var exception = new HttpStatusCodeException(404, "Not Found");

            Assert.Equal(exception.StatusCode, 404);
            Assert.Equal(exception.Message, "Not Found");
        }
Пример #2
0
        private Task HandleExceptionAsync(HttpContext context, HttpStatusCodeException exception)
        {
            ErrorDetails result = null;

            context.Response.ContentType = "application/json";
            if (exception is HttpStatusCodeException)
            {
                result = new ErrorDetails()
                {
                    Message = exception.Message, StatusCode = (int)exception.StatusCode
                };
                log.LogWarning(result.ToString());
                context.Response.StatusCode = (int)exception.StatusCode;
            }
            else
            {
                result = new ErrorDetails()
                {
                    Message = "Runtime Error", StatusCode = (int)HttpStatusCode.BadRequest
                };
                log.LogWarning(result.ToString());
                context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
            }
            return(context.Response.WriteAsync(JsonConvert.SerializeObject(result)));
        }
Пример #3
0
        public void CheckStatusCodeFlags()
        {
            var e1 = new HttpStatusCodeException(10);

            Assert.AreEqual(10, e1.StatusCode);

            var e2 = new HttpStatusCodeException(101, new Exception("Inner Ex"));

            Assert.AreEqual(101, e2.StatusCode);
            Assert.AreEqual("System.Exception: Inner Ex", e2.Message);

            var e3 = new HttpStatusCodeException(20, "exc1");

            Assert.AreEqual(20, e3.StatusCode);
            Assert.AreEqual("exc1", e3.Message);
            Assert.AreEqual("text/plain", e3.ContentType);

            var jsonErr = new JObject();

            jsonErr["m"] = "error";
            var e4 = new HttpStatusCodeException(201, jsonErr);

            Assert.AreEqual(201, e4.StatusCode);
            Assert.AreEqual("{\r\n  \"m\": \"error\"\r\n}", e4.Message);
            Assert.AreEqual("application/json", e4.ContentType);
        }
        public void HttpStatusCodeException_WorksFine()
        {
            // Arrange
            HttpStatusCodeException httpStatusCodeException = new HttpStatusCodeException(201);

            // Act & Assert
            Assert.NotNull(httpStatusCodeException);
        }
Пример #5
0
        /// <summary>
        /// Handles exceptions of our own custom types. These allow for a status code to be provided.
        /// </summary>
        /// <param name="context"></param>
        /// <param name="exception"></param>
        /// <returns></returns>
        private Task HandleExceptionAsync(HttpContext context, HttpStatusCodeException exception)
        {
            var result = exception.Message;

            context.Response.ContentType = "application/json";
            context.Response.StatusCode  = (int)exception.StatusCode;
            return(context.Response.WriteAsync(result));
        }
        public async Task GetAsyncCheckWhenRefreshTokenNull_Test()
        {
            _refreshTokenRepositoryMock.Setup(repo => repo.GetAsync(It.IsAny <System.Linq.Expressions.Expression <Func <RefreshTokens, bool> > >())).Returns(async() => { return(null); });

            HttpStatusCodeException ex = await Assert.ThrowsExceptionAsync <HttpStatusCodeException>(() => _refreshTokenService.GetAsync(RefreshToken));

            Assert.AreEqual("Such refresh token doesn't exist", ex.Message);
        }
        public void HttpStatusCodeException_TwoParametersJobject_WorksFine()
        {
            // Arrange
            HttpStatusCodeException httpStatusCodeException = new HttpStatusCodeException(201, new JObject());

            // Act & Assert
            Assert.NotNull(httpStatusCodeException);
            Assert.Equal(httpStatusCodeException.ContentType, "application/json");
        }
        public void HttpStatusCodeException_TwoParameters_WorksFine()
        {
            // Arrange
            HttpStatusCodeException httpStatusCodeException = new HttpStatusCodeException(201, "Created");

            // Act & Assert
            Assert.NotNull(httpStatusCodeException);
            Assert.Equal(httpStatusCodeException.Message, "Created");
        }
        public void HttpStatusCodeException_TwoParametersException_WorksFine()
        {
            // Arrange
            HttpStatusCodeException httpStatusCodeException = new HttpStatusCodeException(201, new Exception("Exception"));

            // Act & Assert
            Assert.NotNull(httpStatusCodeException);
            Assert.Equal(httpStatusCodeException.Message, "System.Exception: Exception");
        }
Пример #10
0
            //public IEnumerable Errors { get; set; }

            public static ErrorModel FromException(HttpStatusCodeException ex)
            {
                return(new ErrorModel
                {
                    Message = ex.Message,
                    // Errors = ex.Errors,
                    HttpStatusCode = (int)ex.StatusCode,
                    HttpStatusCodeName = ex.StatusCode.ToString()
                });
            }
        public void HttpStatusCodeException_StatusCodeSet_WorksFine()
        {
            // Arrange
            HttpStatusCodeException httpStatusCodeException = new HttpStatusCodeException(404, new JObject());

            httpStatusCodeException.StatusCode = 201;

            // Act & Assert
            Assert.NotNull(httpStatusCodeException);
            Assert.Equal(httpStatusCodeException.StatusCode, 201);
        }
Пример #12
0
        private async Task HandleExceptionAsync(HttpContext context, HttpStatusCodeException exception)
        {
            LogError(exception);

            context.Response.Clear();
            context.Response.StatusCode  = exception.StatusCode;
            context.Response.ContentType = exception.ContentType;

            await context.Response.WriteAsync(exception.Message);

            return;
        }
        /// <summary>
        /// Handles the exception if it is an exception we created (e.g. entity not found).
        /// </summary>
        /// <param name="context"></param>
        /// <param name="exception"></param>
        /// <returns></returns>
        private Task HandleExceptionAsync(HttpContext context, HttpStatusCodeException exception)
        {
            var result = new ErrorResponse
            {
                Message = exception.Message
            };

            context.Response.ContentType = exception.ContentType;
            context.Response.StatusCode  = (int)exception.StatusCode;

            return(context.Response.WriteAsync(JsonConvert.SerializeObject(result)));
        }
        public async Task UpdateRefreshTokenCheckWhenRefreshTokenNull_Test()
        {
            refreshTokenInitialize = new RefreshTokens()
            {
                Id = 1
            };

            _refreshTokenRepositoryMock.Setup(repo => repo.GetAsync(It.IsAny <System.Linq.Expressions.Expression <Func <RefreshTokens, bool> > >())).Returns(async() => { return(null); });

            HttpStatusCodeException ex = await Assert.ThrowsExceptionAsync <HttpStatusCodeException>(() => _refreshTokenService.UpdateRefreshTokenAsync(refreshTokenInitialize.Id, RefreshToken, UserId, DaysToExpire));

            Assert.AreEqual("Such refresh token doesn't exist", ex.Message);
        }
        private async Task HandleExceptionAsync(HttpContext context, HttpStatusCodeException HttpStatusCodeException)
        {
            context.Response.StatusCode = HttpStatusCodeException.StatusCode;

            var errorMessage = new ExceptionViewModel()
            {
                StatusCode   = context.Response.StatusCode,
                ErrorMessage = HttpStatusCodeException.ErrorMessage
            };
            var stringWriter = new StringWriter();

            using (JsonWriter textWriter = new JsonTextWriter(stringWriter))
            {
                var serializer = new JsonSerializer();
                serializer.Serialize(textWriter, errorMessage);
                textWriter.Flush();
            }

            string jSerializeObjectstring = stringWriter.ToString();
            await context.Response.WriteAsync(jSerializeObjectstring);
        }
        public async Task ContentType_Is_Correctly_Set_In_Custom_Error_Response()
        {
            var hostingEnvironment = new Mock <IWebHostEnvironment>();
            var logger             = new Mock <ILogger <ApplicationErrorHandlerMiddleware> >();

            var customException = new HttpStatusCodeException(HttpStatusCode.Forbidden)
            {
                ContentType = "application/xml"
            };

            var middleware = new ApplicationErrorHandlerMiddleware((innerContext) => throw customException, hostingEnvironment.Object, logger.Object);

            var context = new DefaultHttpContext();

            context.Response.Body = new MemoryStream();

            await middleware.Invoke(context);


            context.Response.ContentType
            .Should()
            .BeEquivalentTo("application/xml");
        }
Пример #17
0
        private Task HandleExceptionAsync(HttpContext context, HttpStatusCodeException exception)
        {
            string result = null;

            context.Response.ContentType = "application/json";
            if (exception is HttpStatusCodeException)
            {
                result = new ResponseModel()
                {
                    message = exception.Message, status = (int)exception.StatusCode
                }.ToString();
                context.Response.StatusCode = (int)exception.StatusCode;
            }
            else
            {
                result = new ResponseModel()
                {
                    message = "Runtime Error", status = (int)HttpStatusCode.BadRequest
                }.ToString();
                context.Response.StatusCode = (int)HttpStatusCode.BadRequest;
            }
            return(context.Response.WriteAsync(result));
        }
Пример #18
0
        public async Task DownloadFileAsync_OnErrorWhenGetFails()
        {
            byte[] byteData = new byte[4096 * 5];
            Random random   = new Random();

            random.NextBytes(byteData);

            MemoryStream ms = new MemoryStream();

            var httpResponseMessage = new HttpResponseMessage(HttpStatusCode.BadRequest)
            {
                Content = new ByteArrayContent(byteData, 0, byteData.Length)
            };
            StubHttpMessageHandler testmessage    = new StubHttpMessageHandler(httpResponseMessage);
            HttpClient             stubHttpClient = new HttpClient(testmessage);
            IHttpService           httpService    = new HttpService(stubHttpClient);

            var observable = httpService.DownloadFileAsync("http://testsite.com", "TestFile", ms);
            TaskCompletionSource <HttpStatusCodeException> errorResult = new TaskCompletionSource <HttpStatusCodeException>();

            observable.Subscribe(d =>
                                 { }, exception =>
            {
                errorResult.SetResult((HttpStatusCodeException)exception);
            });

            CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(1));

            cancellationTokenSource.Token.Register(() =>
                                                   { errorResult.TrySetCanceled(); });

            HttpStatusCodeException result = await errorResult.Task;

            Assert.NotNull(result);
            Assert.AreEqual(HttpStatusCode.BadRequest, result.StatusCode);
        }
Пример #19
0
 public static Task SetResponseStatusAsync(HttpResponse httpResponse, HttpStatusCodeException response)
 {
     httpResponse.ContentType = "application/json; charset=utf-8";
     httpResponse.StatusCode  = response.ResponseModel.Status ?? 500;
     return(httpResponse.WriteAsync(System.Text.Json.JsonSerializer.Serialize(response.ResponseModel)));
 }
Пример #20
0
        public void TestHttpStatusCodeMessageException()
        {
            var ex = new HttpStatusCodeException(200, "Success");

            Assert.NotNull(ex);
        }
Пример #21
0
 public static ErrorResponse FromException(HttpStatusCodeException exception) =>
 new ErrorResponse((int)exception.Code, exception.Message);
Пример #22
0
        public void TestHttpException()
        {
            var ex = new HttpStatusCodeException(200, new Exception());

            Assert.NotNull(ex);
        }
Пример #23
0
        public async Task HttpStatusCodeException_Constructor1()
        {
            var exception = new HttpStatusCodeException(404);

            Assert.Equal(exception.StatusCode, 404);
        }
Пример #24
0
        public async Task HttpStatusCodeException_Constructor()
        {
            var exception = new HttpStatusCodeException(404, new Exception());

            Assert.NotNull(exception);
        }
        public void checkHTTPException()
        {
            HttpStatusCodeException httpStatusCodeException = new HttpStatusCodeException(100);

            Assert.AreEqual(100, httpStatusCodeException.StatusCode);
        }
Пример #26
0
        private Task HandleExceptionAsync(HttpContext context, Exception exception)
        {
            var ex = new HttpStatusCodeException(HttpStatusCode.InternalServerError, exception);

            return(SetResponseStatusAsync(context.Response, ex));
        }
Пример #27
0
 private Task HandleExceptionAsync(HttpContext context, HttpStatusCodeException exception)
 {
     context.Response.ContentType = "application/json; charset=utf-8";
     return(SetResponseStatusAsync(context.Response, exception));
 }
        public void Throw_ExpectetContentType()
        {
            HttpStatusCodeException _exceptionCode = new HttpStatusCodeException(200);

            Assert.True(_exceptionCode.ContentType.Contains("text"));
        }
        public async Task Get_ShouldGetOneHourElectricityList(string panelId)
        {
            // Arrange
            OneHourElectricityListModel oneHourElectricityListModel = new OneHourElectricityListModel();

            List <OneHourElectricityModel> oneHourElectricityModels = new List <OneHourElectricityModel>();

            OneHourElectricityModel oneHourElectricityModel1 = new OneHourElectricityModel
            {
                Id       = 1,
                KiloWatt = 6,
                DateTime = new DateTime()
            };
            OneHourElectricityModel oneHourElectricityModel2 = new OneHourElectricityModel
            {
                Id       = 2,
                KiloWatt = 10,
                DateTime = new DateTime()
            };

            oneHourElectricityModels.Add(oneHourElectricityModel1);
            oneHourElectricityModels.Add(oneHourElectricityModel2);

            oneHourElectricityListModel.OneHourElectricitys = oneHourElectricityModels.AsEnumerable();

            try
            {
                if (panelId == "1")
                {
                    // Act
                    var result = await _analyticsController.Get(panelId);

                    // Assert
                    Assert.NotNull(result);

                    var okResult = result as OkObjectResult;
                    Assert.NotNull(okResult);
                    Assert.Equal(200, okResult.StatusCode);

                    var valueResult = okResult.Value as OneHourElectricityListModel;
                    Assert.Equal(oneHourElectricityListModel.ToString(), valueResult.ToString());
                }
                else if (panelId == "1")
                {
                    // Act
                    var result = await _analyticsController.Get(panelId);

                    // Assert
                    Assert.NotNull(result);

                    var notFoundResult = result as NotFoundResult;
                    Assert.NotNull(notFoundResult);
                    Assert.Equal(404, notFoundResult.StatusCode);
                }
            }
            catch (Exception exc)
            {
                // exc.Message is "The provider for the source IQueryable doesn't implement IAsyncQueryProvider. Only providers that implement IEntityQueryProvider can be used for Entity Framework asynchronous operations."
                // This error is only present in unitTest, this error is not taken in the Crossolar endpoint.


                // Coverage HttpStatusCodeException
                int dummyStatusCode = 400;

                var tryCoverage_HttpStatusCodeException1 = new HttpStatusCodeException(dummyStatusCode);
                var tryCoverage_HttpStatusCodeException2 = new HttpStatusCodeException(dummyStatusCode, "The provider for the source IQueryable doesn't implement IAsyncQueryProvider. Only providers that implement IEntityQueryProvider can be used for Entity Framework asynchronous operations.");
                var tryCoverage_HttpStatusCodeException3 = new HttpStatusCodeException(dummyStatusCode, exc);
                var tryCoverage_HttpStatusCodeException4 = new HttpStatusCodeException(dummyStatusCode, new JObject());

                Assert.NotNull(tryCoverage_HttpStatusCodeException1);
                Assert.NotNull(tryCoverage_HttpStatusCodeException2);
                Assert.NotNull(tryCoverage_HttpStatusCodeException3);
                Assert.NotNull(tryCoverage_HttpStatusCodeException4);

                Assert.NotEqual(exc.Message, tryCoverage_HttpStatusCodeException1.Message);
                Assert.Equal(exc.Message, tryCoverage_HttpStatusCodeException2.Message);
                Assert.NotEqual(exc.Message, tryCoverage_HttpStatusCodeException3.Message);
                Assert.Contains(exc.Message, tryCoverage_HttpStatusCodeException3.Message);
                Assert.NotEqual(exc.Message, tryCoverage_HttpStatusCodeException4.Message);
            }
        }