コード例 #1
0
        public void ReservationsController_DeleteByProjectionId_ReservationServiceReturnsNull()
        {
            //Arrange
            IEnumerable <ReservationDomainModel>         reservations = null;
            Task <IEnumerable <ReservationDomainModel> > responseTask = Task.FromResult(reservations);

            string             expectedMessage    = Messages.RESERVATION_DOES_NOT_EXIST;
            int                expectedStatusCode = 500;
            ErrorResponseModel errorResponseModel = new ErrorResponseModel();

            errorResponseModel.ErrorMessage = expectedMessage;
            errorResponseModel.StatusCode   = System.Net.HttpStatusCode.InternalServerError;

            ReservationsController reservationsController = new ReservationsController(_mockReservationService.Object, _mockUserService.Object, _mockProjectionService.Object);

            _mockReservationService.Setup(x => x.DeleteByProjectionId(It.IsAny <Guid>())).Returns(responseTask);

            //Act
            var result      = reservationsController.DeleteByProjectionId(_reservationDomainModel.ProjectionId).ConfigureAwait(false).GetAwaiter().GetResult().Result;
            var viewResult  = (ObjectResult)result;
            var viewMessage = (ErrorResponseModel)viewResult.Value;

            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(viewResult.Value.ToString(), errorResponseModel.ToString());
            Assert.AreEqual(errorResponseModel.ErrorMessage, viewMessage.ErrorMessage);
            Assert.AreEqual(viewResult.StatusCode, expectedStatusCode);
        }
コード例 #2
0
        public void MovieTagsController_GetAllReservations_ReservationsReturnsNull_ReturnError()
        {
            //Arrange
            IEnumerable <ReservationDomainModel>         nullDomainModel = null;
            Task <IEnumerable <ReservationDomainModel> > nullTask        = Task.FromResult(nullDomainModel);

            string expectedMessage    = Messages.RESERVATION_GET_ALL_ERROR;
            int    expectedStatusCode = 500;

            ErrorResponseModel errorResponseModel = new ErrorResponseModel();

            errorResponseModel.ErrorMessage = expectedMessage;
            errorResponseModel.StatusCode   = System.Net.HttpStatusCode.InternalServerError;

            ReservationsController reservationsController = new ReservationsController(_mockReservationService.Object, _mockUserService.Object, _mockProjectionService.Object);

            _mockReservationService.Setup(x => x.GetAllReservations()).Returns(nullTask);

            //Act
            var          result      = reservationsController.GetAllReservations().ConfigureAwait(false).GetAwaiter().GetResult().Result;
            ObjectResult viewResult  = (ObjectResult)result;
            var          viewMessage = (ErrorResponseModel)viewResult.Value;

            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(viewResult.Value.ToString(), errorResponseModel.ToString());
            Assert.AreEqual(errorResponseModel.ErrorMessage, viewMessage.ErrorMessage);
            Assert.AreEqual(viewResult.StatusCode, expectedStatusCode);
        }
コード例 #3
0
        public void UserController_Post_UserServiceReturnsNull()
        {
            //Arrange
            UserDomainModel        nullDomainModel = null;
            Task <UserDomainModel> nullTask        = Task.FromResult(nullDomainModel);

            string expectedMessage    = Messages.USER_CREATION_ERROR;
            int    expectedStatusCode = 500;

            ErrorResponseModel errorResponseModel = new ErrorResponseModel();

            errorResponseModel.ErrorMessage = expectedMessage;
            errorResponseModel.StatusCode   = System.Net.HttpStatusCode.InternalServerError;

            UsersController usersController = new UsersController(_mockUserService.Object);

            _mockUserService.Setup(x => x.AddUser(It.IsAny <UserDomainModel>())).Returns(nullTask);

            //Act
            var          result     = usersController.Post(_createUserModel).ConfigureAwait(false).GetAwaiter().GetResult();
            ObjectResult viewResult = (ObjectResult)result;

            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(viewResult.Value.ToString(), errorResponseModel.ToString());
            Assert.AreEqual(viewResult.StatusCode, expectedStatusCode);
        }
コード例 #4
0
        public void MovieTagsController_DeleteByMovieIdTagId_ServiceReturnsNull()
        {
            //Arrange
            MovieTagsDomainModel        movieTags    = null;
            Task <MovieTagsDomainModel> responseTask = Task.FromResult(movieTags);

            string expectedMessage    = Messages.MOVIETAG_DOES_NOT_EXIST;
            int    expectedStatusCode = 500;

            ErrorResponseModel errorResponseModel = new ErrorResponseModel();

            errorResponseModel.ErrorMessage = expectedMessage;
            errorResponseModel.StatusCode   = System.Net.HttpStatusCode.InternalServerError;

            MovieTagsController movieTagsController = new MovieTagsController(_mockMovieTagService.Object);

            _mockMovieTagService.Setup(x => x.DeleteByMovieIdTagId(It.IsAny <Guid>(), It.IsAny <int>())).Returns(responseTask);

            //Act
            var          result     = movieTagsController.DeleteByMovieIdTagId(_movieTagDomainModel.MovieId, _movieTagDomainModel.TagId).ConfigureAwait(false).GetAwaiter().GetResult();
            ObjectResult viewResult = (ObjectResult)result;

            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(viewResult.Value.ToString(), errorResponseModel.ToString());
            Assert.AreEqual(viewResult.StatusCode, expectedStatusCode);
        }
コード例 #5
0
        private async Task HandleExceptionAsync(HttpContext httpContext, Exception e)
        {
            //_logger.LogError("Starting Logging for exception");
            var errorModel = new ErrorResponseModel()
            {
                ExceptionMessage      = e.Message,
                ExceptionStackTrace   = e.StackTrace,
                InnerExceptionMessage = e.InnerException?.Message
            };

            httpContext.Response.ContentType = "application/json";
            httpContext.Response.StatusCode  = (int)HttpStatusCode.InternalServerError;

            _logger.LogError("An error occurred: {ErrorMessage}", errorModel.ExceptionMessage);
            await httpContext.Response.WriteAsync(errorModel.ToString() ?? string.Empty);
        }
コード例 #6
0
        public static void ConfigureExceptionHandler(this IApplicationBuilder app)
        {
            app.UseExceptionHandler(appError =>
            {
                appError.Run(async context =>
                {
                    context.Response.StatusCode  = (int)HttpStatusCode.InternalServerError;
                    context.Response.ContentType = "application/json";

                    var contextFeature = context.Features.Get <IExceptionHandlerFeature>();
                    if (contextFeature != null)
                    {
                        var errorRespondMode = new ErrorResponseModel
                        {
                            StatusCode = context.Response.StatusCode,
                            Message    = contextFeature.Error.Message
                        };

                        await context.Response.WriteAsync(errorRespondMode.ToString());
                    }
                });
            });
        }