Exemple #1
0
        public void PostAsync_With_InValid_ModelState_Return_BadRequest()
        {
            //Arrange
            string expectedMessage    = "Invalid Model State";
            int    expectedStatusCode = 400;

            CreateAuditoriumModel createAuditoriumModel = new CreateAuditoriumModel
            {
                auditName     = "auditorium123",
                cinemaId      = 44,
                numberOfSeats = 5,
                seatRows      = 55
            };


            _auditoriumService = new Mock <IAuditoriumService>();
            AuditoriumsController auditoriumsController = new AuditoriumsController(_auditoriumService.Object);

            auditoriumsController.ModelState.AddModelError("key", "Invalid Model State");


            //Act
            var result         = auditoriumsController.PostAsync(createAuditoriumModel).ConfigureAwait(false).GetAwaiter().GetResult().Result;
            var resultResponse = (BadRequestObjectResult)result;
            var createdResult  = ((BadRequestObjectResult)result).Value;
            var errorResponse  = ((SerializableError)createdResult).GetValueOrDefault("key");
            var message        = (string[])errorResponse;


            //Assert
            Assert.IsNotNull(resultResponse);
            Assert.AreEqual(expectedMessage, message[0]);
            Assert.IsInstanceOfType(result, typeof(BadRequestObjectResult));
            Assert.AreEqual(expectedStatusCode, resultResponse.StatusCode);
        }
Exemple #2
0
        public void PostAsync_Create_Throw_DbException_Auditorium()
        {
            //Arrange
            string expectedMessage    = "Inner exception error message.";
            int    expectedStatusCode = 400;

            CreateAuditoriumModel createAuditoriumModel = new CreateAuditoriumModel
            {
                auditName     = "Auditorium55",
                cinemaId      = 24,
                numberOfSeats = 5,
                seatRows      = 6
            };

            CreateAuditoriumResultModel createAuditoriumResultModel = new CreateAuditoriumResultModel
            {
                Auditorium = new AuditoriumDomainModel
                {
                    Id        = 25,
                    Name      = createAuditoriumModel.auditName,
                    CinemaId  = createAuditoriumModel.cinemaId,
                    SeatsList = new List <SeatDomainModel>()
                },
                IsSuccessful = true
            };

            Task <CreateAuditoriumResultModel> responseTask = Task.FromResult(createAuditoriumResultModel);
            Exception         exception         = new Exception("Inner exception error message.");
            DbUpdateException dbUpdateException = new DbUpdateException("Error.", exception);

            _auditoriumService = new Mock <IAuditoriumService>();
            _auditoriumService.Setup(x => x.CreateAuditorium(It.IsAny <AuditoriumDomainModel>(),
                                                             It.IsAny <int>(),
                                                             It.IsAny <int>())).Throws(dbUpdateException);

            AuditoriumsController auditoriumsController = new AuditoriumsController(_auditoriumService.Object);

            //Act
            var result          = auditoriumsController.PostAsync(createAuditoriumModel).ConfigureAwait(false).GetAwaiter().GetResult().Result;
            var resultResponse  = (BadRequestObjectResult)result;
            var badObjectResult = ((BadRequestObjectResult)result).Value;
            var errorResult     = (ErrorResponseModel)badObjectResult;

            //Assert
            Assert.IsNotNull(resultResponse);
            Assert.AreEqual(expectedMessage, errorResult.ErrorMessage);
            Assert.IsInstanceOfType(result, typeof(BadRequestObjectResult));
            Assert.AreEqual(expectedStatusCode, resultResponse.StatusCode);
        }
Exemple #3
0
        public void PostAsync_Create_createAuditoriumResultModel_IsSuccessful_False_Return_BadRequest()
        {
            //Arrange
            string expectedMessage    = "Error occured while creating new auditorium, please try again.";
            int    expectedStatusCode = 400;

            CreateAuditoriumModel createAuditoriumModel = new CreateAuditoriumModel
            {
                auditName     = "Auditorium55",
                cinemaId      = 24,
                numberOfSeats = 5,
                seatRows      = 6
            };

            CreateAuditoriumResultModel createAuditoriumResultModel = new CreateAuditoriumResultModel
            {
                Auditorium = new AuditoriumDomainModel
                {
                    Id        = 123,
                    CinemaId  = createAuditoriumModel.cinemaId,
                    Name      = createAuditoriumModel.auditName,
                    SeatsList = new List <SeatDomainModel>()
                },
                IsSuccessful = false,
                ErrorMessage = Messages.AUDITORIUM_CREATION_ERROR
            };
            Task <CreateAuditoriumResultModel> responseTask = Task.FromResult(createAuditoriumResultModel);

            _auditoriumService = new Mock <IAuditoriumService>();
            _auditoriumService.Setup(x => x.CreateAuditorium(It.IsAny <AuditoriumDomainModel>(),
                                                             It.IsAny <int>(),
                                                             It.IsAny <int>())).Returns(responseTask);
            AuditoriumsController auditoriumsController = new AuditoriumsController(_auditoriumService.Object);


            //Act
            var result          = auditoriumsController.PostAsync(createAuditoriumModel).ConfigureAwait(false).GetAwaiter().GetResult().Result;
            var resultResponse  = (BadRequestObjectResult)result;
            var badObjectResult = ((BadRequestObjectResult)result).Value;
            var errorResult     = (ErrorResponseModel)badObjectResult;

            //Assert
            Assert.IsNotNull(resultResponse);
            Assert.AreEqual(expectedMessage, errorResult.ErrorMessage);
            Assert.IsInstanceOfType(result, typeof(BadRequestObjectResult));
            Assert.AreEqual(expectedStatusCode, resultResponse.StatusCode);
        }
Exemple #4
0
        public async Task <ActionResult> Edit(int id, [FromBody] CreateAuditoriumModel auditoriumModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            AuditoriumDomainModel auditoriumToUpdate;

            auditoriumToUpdate = await _auditoriumService.GetByIdAsync(id);

            if (auditoriumToUpdate == null)
            {
                ErrorResponseModel errorResponse = new ErrorResponseModel
                {
                    ErrorMessage = Messages.AUDITORIUM_DOES_NOT_EXIST,
                    StatusCode   = System.Net.HttpStatusCode.BadRequest
                };

                return(BadRequest(errorResponse));
            }

            AuditoriumDomainModel domainModel = new AuditoriumDomainModel()
            {
                Id       = id,
                CinemaId = auditoriumModel.cinemaId,
                Name     = auditoriumModel.auditName
            };

            AuditoriumDomainModel auditoriumDomainModel;

            try
            {
                auditoriumDomainModel = await _auditoriumService.UpdateAuditorium(domainModel, auditoriumModel.seatRows, auditoriumModel.numberOfSeats);
            }
            catch (DbUpdateException e)
            {
                ErrorResponseModel errorResponse = new ErrorResponseModel
                {
                    ErrorMessage = e.InnerException.Message ?? e.Message,
                    StatusCode   = System.Net.HttpStatusCode.BadRequest
                };

                return(BadRequest(errorResponse));
            }
            return(Accepted("auditoriums//" + auditoriumDomainModel.Id, auditoriumDomainModel));
        }
Exemple #5
0
        public void PostAsync_Create_createAuditoriumResultModel_IsSuccessful_True_Auditorium()
        {
            //Arrange
            int expectedStatusCode = 201;

            CreateAuditoriumModel createAuditoriumModel = new CreateAuditoriumModel
            {
                auditName     = "Auditorium1",
                cinemaId      = 23,
                numberOfSeats = 5,
                seatRows      = 4
            };

            CreateAuditoriumResultModel createAuditoriumResultModel = new CreateAuditoriumResultModel
            {
                Auditorium = new AuditoriumDomainModel
                {
                    Id        = 15,
                    CinemaId  = createAuditoriumModel.cinemaId,
                    Name      = createAuditoriumModel.auditName,
                    SeatsList = new List <SeatDomainModel>()
                },
                IsSuccessful = true
            };
            Task <CreateAuditoriumResultModel> responseTask = Task.FromResult(createAuditoriumResultModel);

            _auditoriumService = new Mock <IAuditoriumService>();
            _auditoriumService.Setup(x => x
                                     .CreateAuditorium(It.IsAny <AuditoriumDomainModel>(), It.IsAny <int>(), It.IsAny <int>())).Returns(responseTask);

            AuditoriumsController auditoriumsController = new AuditoriumsController(_auditoriumService.Object);

            //Act
            var result                = auditoriumsController.PostAsync(createAuditoriumModel).ConfigureAwait(false).GetAwaiter().GetResult().Result;
            var createdResult         = ((CreatedResult)result).Value;
            var auditoriumDomainModel = (AuditoriumDomainModel)createdResult;

            //Assert
            Assert.IsNotNull(auditoriumDomainModel);
            Assert.AreEqual(createAuditoriumModel.cinemaId, auditoriumDomainModel.CinemaId);
            Assert.AreEqual(createAuditoriumModel.auditName, auditoriumDomainModel.Name);
            Assert.IsInstanceOfType(result, typeof(CreatedResult));
            Assert.AreEqual(expectedStatusCode, ((CreatedResult)result).StatusCode);
        }
Exemple #6
0
        public async Task <ActionResult <AuditoriumDomainModel> > PostAsync(CreateAuditoriumModel createAuditoriumModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            AuditoriumDomainModel auditoriumDomainModel = new AuditoriumDomainModel
            {
                CinemaId = createAuditoriumModel.cinemaId,
                Name     = createAuditoriumModel.auditName
            };

            CreateAuditoriumResultModel createAuditoriumResultModel;

            try
            {
                createAuditoriumResultModel = await _auditoriumService.CreateAuditorium(auditoriumDomainModel, createAuditoriumModel.numberOfSeats, createAuditoriumModel.seatRows);
            }
            catch (DbUpdateException e)
            {
                ErrorResponseModel errorResponse = new ErrorResponseModel
                {
                    ErrorMessage = e.InnerException.Message ?? e.Message,
                    StatusCode   = System.Net.HttpStatusCode.BadRequest
                };

                return(BadRequest(errorResponse));
            }

            if (!createAuditoriumResultModel.IsSuccessful)
            {
                ErrorResponseModel errorResponse = new ErrorResponseModel()
                {
                    ErrorMessage = createAuditoriumResultModel.ErrorMessage,
                    StatusCode   = System.Net.HttpStatusCode.BadRequest
                };

                return(BadRequest(errorResponse));
            }

            return(Created("auditoriums//" + createAuditoriumResultModel.Auditorium.Id, createAuditoriumResultModel));
        }