public void InvokeDataCommitOnce_WhenThePassedArgumentsAreValid() { //Arrange var dataMock = new Mock <IHomeMadeFoodData>(); var foodCategoriesServiceMock = new Mock <IFoodCategoriesService>(); IngredientsService ingredientsService = new IngredientsService(dataMock.Object, foodCategoriesServiceMock.Object); string name = "NameOfTheIngredient"; decimal pricePerMeasuringUnit = 1.19m; Guid foodCategoryId = Guid.NewGuid(); Guid recipeId = Guid.NewGuid(); double quantityPerMeasuringUnit = 0.250; Ingredient ingredient = new Ingredient() { Name = name, RecipeId = recipeId, FoodCategoryId = foodCategoryId, QuantityInMeasuringUnit = quantityPerMeasuringUnit, PricePerMeasuringUnit = pricePerMeasuringUnit }; dataMock.Setup(x => x.Ingredients.Update(ingredient)); //Act ingredientsService.EditIngredient(ingredient); //Assert dataMock.Verify(x => x.SaveChanges(), Times.Once); }
public void Throw_WhenThePassedIngredientIsNull() { //Arrange var dataMock = new Mock <IHomeMadeFoodData>(); var foodCategoriesServiceMock = new Mock <IFoodCategoriesService>(); IngredientsService ingredientsService = new IngredientsService(dataMock.Object, foodCategoriesServiceMock.Object); dataMock.Setup(x => x.Ingredients.Update(It.IsAny <Ingredient>())); //Act & Assert Assert.Throws <ArgumentNullException>(() => ingredientsService.EditIngredient(null)); }
public void InvokeDataIngredientsRepositoryMethodUpdateOnce_WhenThePassedIngredientIsValid() { //Arrange var dataMock = new Mock <IHomeMadeFoodData>(); var foodCategoriesServiceMock = new Mock <IFoodCategoriesService>(); IngredientsService ingredientsService = new IngredientsService(dataMock.Object, foodCategoriesServiceMock.Object); dataMock.Setup(x => x.Ingredients.Update(It.IsAny <Ingredient>())); Guid ingredientId = Guid.NewGuid(); Ingredient ingredient = new Ingredient() { Id = ingredientId, Name = "IngredientName", PricePerMeasuringUnit = 12.60m, QuantityInMeasuringUnit = 0 }; //Act ingredientsService.EditIngredient(ingredient); //Assert dataMock.Verify(x => x.Ingredients.Update(ingredient), Times.Once); }