コード例 #1
0
        public ActionResult UpdateIngredient(int recipeId, int recipeStepId, int id,
                                             [FromBody] IngredientForUpdateDto ingredient)
        {
            if (!_homeBrewRepository.RecipeExists(recipeId))
            {
                return(NotFound());
            }

            if (!_homeBrewRepository.RecipeStepExists(recipeStepId))
            {
                return(NotFound());
            }

            var ingredientEntity = _homeBrewRepository
                                   .GetIngredientForRecipeStep(recipeStepId, id);

            if (ingredientEntity == null)
            {
                return(NotFound());
            }

            _mapper.Map(ingredient, ingredientEntity);

            _homeBrewRepository.UpdateIngredient(ingredientEntity);

            _homeBrewRepository.Save();

            return(NoContent());
        }
コード例 #2
0
        public IActionResult Update(int id, IngredientForUpdateDto ingredientDto)
        {
            var ingredientToUpdate = _mapper.Map <Ingredient>(ingredientDto);

            _repo.Update(ingredientToUpdate);

            return(NoContent());
        }
コード例 #3
0
        public IActionResult UpdateIngredient(int ingredientId, IngredientForUpdateDto ingredient)
        {
            var ingredientFromRepo = _ingredientRepository.GetIngredient(ingredientId);

            if (ingredientFromRepo == null)
            {
                return(NotFound());
            }

            _mapper.Map(ingredient, ingredientFromRepo);
            _ingredientRepository.UpdateIngredient(ingredientFromRepo);

            _ingredientRepository.Save();

            return(NoContent());
        }
コード例 #4
0
        public void FullyUpdateIngredient_InvalidId_ReturnsNotFound()
        {
            // Arrange
            int invalidIngredientId    = 2;
            var ingredientForUpdateDto = new IngredientForUpdateDto();

            ingredientsServiceMock = new Mock <IIngredientsService>();
            ingredientsServiceMock
            .Setup(m => m.GetById(invalidIngredientId))
            .Returns(null as IngredientDto);
            ingredientsController = new IngredientsController(ingredientsServiceMock.Object, mapper);

            // Act
            var result = ingredientsController.FullyUpdateIngredient(invalidIngredientId, ingredientForUpdateDto);

            // Assert
            Assert.IsTrue(result.GetType() == typeof(NotFoundResult));
        }
コード例 #5
0
        public void FullyUpdateIngredient_ValidIdAndValidData_ReturnsNoContent()
        {
            // Arrange
            int validIngredientId      = 1;
            var ingredientForUpdateDto = new IngredientForUpdateDto();

            ingredientsServiceMock = new Mock <IIngredientsService>();
            ingredientsServiceMock
            .Setup(m => m.GetById(validIngredientId))
            .Returns(new IngredientDto());
            ingredientsController = new IngredientsController(ingredientsServiceMock.Object, mapper);

            // Act
            var result = ingredientsController.FullyUpdateIngredient(validIngredientId, ingredientForUpdateDto);

            // Assert
            Assert.IsTrue(result.GetType() == typeof(NoContentResult));
        }
コード例 #6
0
        public void FullyUpdateIngredient_ValidIdAndInvalidData_ReturnsBadRequest()
        {
            // Arrange
            int validIngredientId      = 1;
            var ingredientForUpdateDto = new IngredientForUpdateDto();

            ingredientsServiceMock = new Mock <IIngredientsService>();
            ingredientsServiceMock
            .Setup(m => m.GetById(validIngredientId))
            .Returns(new IngredientDto());
            ingredientsController = new IngredientsController(ingredientsServiceMock.Object, mapper);
            ingredientsController.ModelState.AddModelError("Some Key", "Some Error Message");

            // Act
            var result = ingredientsController.FullyUpdateIngredient(validIngredientId, ingredientForUpdateDto);

            // Assert
            Assert.IsTrue(result.GetType() == typeof(BadRequestObjectResult));
        }
コード例 #7
0
        public IActionResult FullyUpdateIngredient(int id, IngredientForUpdateDto ingredientForUpdateDto)
        {
            var ingredientToUpdate = ingredientsService.GetById(id);

            if (ingredientToUpdate == null)
            {
                return(NotFound());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var ingredientDtoWithNewValues = mapper.Map <IngredientDto>(ingredientForUpdateDto);

            ingredientsService.FullyUpdate(id, ingredientDtoWithNewValues);

            return(NoContent());
        }