コード例 #1
0
        public void MakeReservation_Reservation_Not_Created_Return_BadRequest()
        {
            //Arrange
            int expectedStatusCode = 400;

            CreateReservationModel createReservationModel = new CreateReservationModel
            {
                UserId       = Guid.NewGuid(),
                ProjectionId = Guid.NewGuid(),
                SeatIds      = new List <SeatDomainModel>()
            };

            ReservationResultModel reservationResultModel = new ReservationResultModel
            {
                ErrorMessage = null,
                IsSuccessful = false
            };


            _reservationService = new Mock <IReservationService>();
            _reservationService.Setup(x => x
                                      .CreateReservation(It.IsAny <CreateReservationModel>())).Returns(reservationResultModel);

            ReservationsController reservationsController = new ReservationsController(_reservationService.Object);

            //Act
            var result        = reservationsController.MakeReservation(createReservationModel).Result;
            var createdResult = ((BadRequestObjectResult)result).Value;
            var reservationResultDomainModel = (ErrorResponseModel)createdResult;

            //Assert
            Assert.IsNotNull(createdResult);
            Assert.IsInstanceOfType(result, typeof(BadRequestObjectResult));
            Assert.AreEqual(expectedStatusCode, ((BadRequestObjectResult)result).StatusCode);
        }
コード例 #2
0
        public void MakeReservation_Throw_DbUpdateException()
        {
            //Arrange
            int    expectedStatusCode = 400;
            string expectedMessage    = "Inner exception error message.";

            CreateReservationModel createReservationModel = new CreateReservationModel
            {
                UserId       = Guid.NewGuid(),
                ProjectionId = Guid.NewGuid(),
                SeatIds      = new List <SeatDomainModel>()
            };

            ReservationResultModel reservationResultModel = new ReservationResultModel
            {
                Reservation = new ReservationDomainModel
                {
                    Id           = Guid.NewGuid(),
                    ProjectionId = Guid.NewGuid(),
                    UserId       = createReservationModel.UserId
                },
                ErrorMessage = null,
                IsSuccessful = true
            };


            Exception         exception         = new Exception("Inner exception error message.");
            DbUpdateException dbUpdateException = new DbUpdateException("Error.", exception);


            _reservationService = new Mock <IReservationService>();
            _reservationService.Setup(x => x
                                      .CreateReservation(It.IsAny <CreateReservationModel>())).Throws(dbUpdateException);

            ReservationsController reservationsController = new ReservationsController(_reservationService.Object);

            //Act
            var result = reservationsController.MakeReservation(createReservationModel).Result;
            var badRequestResultValue = ((BadRequestObjectResult)result).Value;
            var errorResponse         = (ErrorResponseModel)badRequestResultValue;

            //Assert
            Assert.IsNotNull(badRequestResultValue);
            Assert.AreEqual(expectedMessage, errorResponse.ErrorMessage);
            Assert.IsInstanceOfType(result, typeof(BadRequestObjectResult));
            Assert.AreEqual(expectedStatusCode, ((BadRequestObjectResult)result).StatusCode);
        }
コード例 #3
0
        public void MakeReservation_ReservationCreatedSuccesful_ReturnCreated()
        {
            //Arrange
            int expectedStatusCode = 201;

            CreateReservationModel createReservationModel = new CreateReservationModel
            {
                UserId       = Guid.NewGuid(),
                ProjectionId = Guid.NewGuid(),
                SeatIds      = new List <SeatDomainModel>()
            };

            ReservationResultModel reservationResultModel = new ReservationResultModel
            {
                Reservation = new ReservationDomainModel
                {
                    Id           = Guid.NewGuid(),
                    ProjectionId = Guid.NewGuid(),
                    UserId       = createReservationModel.UserId
                },
                ErrorMessage = null,
                IsSuccessful = true
            };


            _reservationService = new Mock <IReservationService>();
            _reservationService.Setup(x => x
                                      .CreateReservation(It.IsAny <CreateReservationModel>())).Returns(reservationResultModel);

            ReservationsController reservationsController = new ReservationsController(_reservationService.Object);

            //Act
            var result        = reservationsController.MakeReservation(createReservationModel).Result;
            var createdResult = ((CreatedResult)result).Value;
            var reservationResultDomainModel = (ReservationResultModel)createdResult;

            //Assert
            Assert.IsNotNull(createdResult);
            Assert.AreEqual(createReservationModel.UserId, reservationResultDomainModel.Reservation.UserId);
            Assert.IsInstanceOfType(result, typeof(CreatedResult));
            Assert.AreEqual(expectedStatusCode, ((CreatedResult)result).StatusCode);
        }