示例#1
0
        public void PatchRestaurant_ServerException_InternalError()
        {
            //arrange
            var updatedCuisineName    = "Mexican";
            var updatedCuisineId      = 10;
            var updatedRestaurantName = "World Cafe";
            var restaruantIdToUpdate  = 155;

            var requestModel = new API.ViewModels.Restaurant
            {
                Id          = restaruantIdToUpdate,
                CuisineName = updatedCuisineName,
                CuisineId   = updatedCuisineId,
                Name        = updatedRestaurantName,
            };

            MockRepository.Setup(m => m.GetRestaurantById(restaruantIdToUpdate));
            MockIdentity.Setup(m => m.GetRequestingUserId()).Throws(new Exception());

            var ctrl = new RestaurantsController(MockRepository.Object, MockLogger.Object, MockIdentity.Object);

            //act
            var actionResult = ctrl.Patch(restaruantIdToUpdate, requestModel);

            // assert
            Assert.IsInstanceOfType(actionResult, typeof(InternalServerErrorResult));
        }
示例#2
0
        public void PatchRestaurant_ValidData_OK()
        {
            //arrange
            var originalCuisineName    = "Indian";
            var originalCuisineId      = 1;
            var originalRestaurantName = "No1 Indian Restaurant";
            var updatedRestaurantName  = "World Cafe";
            var restaruantIdToUpdate   = 155;
            var createdUser            = 10;
            var callingUserId          = 10;
            var originalCuisine        = new Cuisine
            {
                Name      = originalCuisineName,
                Id        = originalCuisineId,
                CreatedBy = createdUser,
                UpdatedBy = createdUser
            };

            var restaurantBeforeUpdate = new Restaurant
            {
                Id        = restaruantIdToUpdate,
                CreatedBy = createdUser,
                UpdatedBy = createdUser,
                Cuisine   = originalCuisine,
                Name      = originalRestaurantName
            };

            var requestModel = new API.ViewModels.Restaurant
            {
                Id   = restaruantIdToUpdate,
                Name = updatedRestaurantName,
            };

            var transactionRequest = new UpdateRestaurantRequestModel
            {
                RestaurantId = restaruantIdToUpdate,
                Name         = updatedRestaurantName,
                UserId       = callingUserId
            };

            MockRepository.Setup(m => m.UpdateRestaurant(transactionRequest));
            MockRepository.Setup(m => m.DoseCuisineIdExist(It.IsAny <int>())).Returns(true);
            MockRepository.Setup(m => m.GetRestaurantById(restaruantIdToUpdate)).Returns(restaurantBeforeUpdate);
            MockIdentity.Setup(m => m.GetRequestingUserId()).Returns(callingUserId);

            var ctrl = new RestaurantsController(MockRepository.Object, MockLogger.Object, MockIdentity.Object);

            //act
            var actionResult  = ctrl.Patch(restaruantIdToUpdate, requestModel);
            var contentResult = actionResult as OkNegotiatedContentResult <API.ViewModels.Restaurant>;

            //assert
            Assert.IsNotNull(contentResult, "ok -200 status was not returned");
            //Assert.AreEqual(HttpStatusCode..Accepted, responseRestaurants.StatusCode);
            //TODO: must check if se should return 201-accepted, 200-ok(with body) or 204 (ok with no content)
            Assert.IsNotNull(contentResult.Content);
            Assert.AreEqual(restaruantIdToUpdate, contentResult.Content.Id);
        }
示例#3
0
        public void PatchRestaurant_DatabaseException_BadData()
        {
            //arrange
            var updatedCuisineName    = "Mexican";
            var updatedCuisineId      = 10;
            var updatedRestaurantName = "World Cafe";
            var restaruantIdToUpdate  = 155;
            var callingUserId         = 10;

            var requestModel = new API.ViewModels.Restaurant
            {
                Id          = restaruantIdToUpdate,
                CuisineName = updatedCuisineName,
                CuisineId   = updatedCuisineId,
                Name        = updatedRestaurantName,
            };

            var transactionRequest = new UpdateRestaurantRequestModel
            {
                RestaurantId = restaruantIdToUpdate,
                CuisineId    = updatedCuisineId,
                Name         = updatedRestaurantName,
                UserId       = callingUserId
            };


            MockRepository.Setup(m => m.UpdateRestaurant(transactionRequest))
            .Throws(new Exception());
            MockRepository.Setup(m => m.GetRestaurantById(restaruantIdToUpdate))
            .Throws(new Exception());
            MockIdentity.Setup(m => m.GetRequestingUserId()).Returns(10);

            var ctrl = new RestaurantsController(MockRepository.Object, MockLogger.Object, MockIdentity.Object);

            //act
            var actionResult = ctrl.Patch(restaruantIdToUpdate, requestModel);

            // assert
            Assert.IsInstanceOfType(actionResult, typeof(BadRequestResult));
        }