public async Task ThrowArgumentException_When_IngredientCannotBeDeleted() { var testCocktailEntityId = 1; var testIngredientEntityId = 5; var testCocktailIngredientEntity = new CocktailIngredientEntity() { CocktailEntityId = testCocktailEntityId, IngredientEntityId = testIngredientEntityId }; var options = TestUtilities.GetOptions(nameof(ThrowArgumentException_When_IngredientCannotBeDeleted)); using (var arrangeContext = new AppDBContext(options)) { await arrangeContext.CocktaiIngredients.AddAsync(testCocktailIngredientEntity); await arrangeContext.SaveChangesAsync(); } using (var assertContext = new AppDBContext(options)) { var sut = new IngredientService(assertContext); await Assert.ThrowsExceptionAsync <ArgumentException>(() => sut.Delete(testIngredientEntityId)); } }
private void RemoveIngredients(int cocktailId, IEnumerable <int> ingredientIds) { foreach (var ingredientId in ingredientIds) { var entity = new CocktailIngredientEntity { CocktailEntityId = cocktailId, IngredientEntityId = ingredientId, }; this.context.CocktaiIngredients.Remove(entity); } }
public async Task IncrementIngredientsCounter_When_CocktailIsCreated() { var testCocktailId = 5; var testIngredientId = 3; var testIngredidentName = "TestIngredient"; var cocktailIngredient = new CocktailIngredientEntity() { CocktailEntityId = testCocktailId, IngredientEntityId = testIngredientId }; var cocktailCreateRequest = new CocktailCreateRequest() { Name = testIngredidentName, Recipe = "TestRecipe", Ingredients = new List <int>() { testIngredientId } }; var ingredientEntity = new IngredientEntity() { Id = testIngredientId, Name = testIngredidentName, TimesUsed = 5, }; var options = TestUtilities.GetOptions(nameof(IncrementIngredientsCounter_When_CocktailIsCreated)); using (var arrangeContext = new AppDBContext(options)) { await arrangeContext.Ingredients.AddAsync(ingredientEntity); await arrangeContext.SaveChangesAsync(); } using (var assertContext = new AppDBContext(options)) { var sut = new CocktailService(assertContext); await sut.Create(cocktailCreateRequest); var testIngredient = await assertContext.Ingredients.SingleOrDefaultAsync(x => x.Id == testIngredientId); Assert.AreEqual(6, testIngredient.TimesUsed); } }