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));
            }
        }
示例#2
0
        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);
            }
        }