Beispiel #1
0
        public async Task CreateAsyncShouldCreateIngredientSuccessfully()
        {
            await _ingredientsService.CreateAsync("ham");

            Assert.Equal(1, _ingredientsRepository.All().Count());
            Assert.Equal("ham", _ingredientsRepository.All().First().Name);
        }
        public async Task Create_WithExistingAndNonExistingAllergens_ShouldReturnNull()
        {
            var dbContext = WantoeatDbContextInMemoryFactory.InitializeContext();
            var service   = new IngredientsService(dbContext);

            var allergenGluten = new Allergen {
                Name = "Gluten"
            };

            dbContext.Add(allergenGluten);
            await dbContext.SaveChangesAsync();

            var ingredientVM = new IngredientCreateInputModel
            {
                Name        = "Flour",
                AllergenIds = new List <int>
                {
                    allergenGluten.Id, 2
                }
            };

            var actual = await service.CreateAsync(ingredientVM);

            Assert.True(actual == null);
        }
        public async Task Create_WithExistingAllergens_ShouldCreateAlsoRelationToAllergens()
        {
            var dbContext = WantoeatDbContextInMemoryFactory.InitializeContext();
            var service   = new IngredientsService(dbContext);

            var allergenGluten = new Allergen {
                Name = "Gluten"
            };
            var allergenLupin = new Allergen {
                Name = "Lupin"
            };

            dbContext.Add(allergenGluten);
            dbContext.Add(allergenLupin);
            await dbContext.SaveChangesAsync();

            var ingredientVM = new IngredientCreateInputModel
            {
                Name        = "Flour",
                AllergenIds = new List <int>
                {
                    allergenGluten.Id, allergenLupin.Id
                }
            };

            var actual = await service.CreateAsync(ingredientVM);

            Assert.True(actual.IngredientAllergens.Count == 2);
        }
        public async Task CreateIngredient_When_IngredientDoesNotExist()
        {
            var options            = Utils.GetOptions(nameof(CreateIngredient_When_IngredientDoesNotExist));
            var testIngredientName = "IngredientName";

            var entity = new Ingredient()
            {
                Name        = "SampleIngredientName",
                IsAlcoholic = true,
            };

            var mockMapper = new Mock <IIngredientMapper>();

            mockMapper.Setup(x => x.MapDTOToEntity(It.IsAny <IngredientDTO>()))
            .Returns((IngredientDTO i) => new Ingredient()
            {
                Name        = testIngredientName,
                IsAlcoholic = true
            });
            mockMapper.Setup(x => x.MapEntityToDTO(It.IsAny <Ingredient>()))
            .Returns((Ingredient i) => new IngredientDTO()
            {
                Name        = testIngredientName,
                IsAlcoholic = true
            });


            using (var arrangeContext = new BCcontext(options))
            {
                await arrangeContext.Ingredients
                .AddAsync(entity);

                await arrangeContext.SaveChangesAsync();
            }

            using (var actContext = new BCcontext(options))
            {
                var sut        = new IngredientsService(actContext, mockMapper.Object);
                var ingredient = new IngredientDTO()
                {
                    Name        = testIngredientName,
                    IsAlcoholic = true,
                };
                var testIngredient = await sut.CreateAsync(ingredient);

                await actContext.SaveChangesAsync();
            }

            using (var assertContext = new BCcontext(options))
            {
                Assert.AreEqual(2, assertContext.Ingredients.Count());
                var ingredient = await assertContext.Ingredients.FirstOrDefaultAsync(x => x.Name == testIngredientName);

                Assert.IsNotNull(ingredient);
                Assert.IsTrue(ingredient.IsAlcoholic);
            }
        }
        public async Task Create_FromViewModel_ShouldReturnRightType()
        {
            var dbContext = WantoeatDbContextInMemoryFactory.InitializeContext();
            var service   = new IngredientsService(dbContext);

            var ingredientVM = new IngredientCreateInputModel
            {
                Name = "Flour"
            };

            Ingredient actual = await service.CreateAsync(ingredientVM);

            Assert.IsType <Ingredient>(actual);
        }
        public async Task Create_WithoutAllergens_ShouldBeSucessfull()
        {
            var dbContext = WantoeatDbContextInMemoryFactory.InitializeContext();
            var service   = new IngredientsService(dbContext);

            var ingredientVM = new IngredientCreateInputModel
            {
                Name = "Flour"
            };

            var craeted = await service.CreateAsync(ingredientVM);

            Assert.NotNull(craeted);
        }
        public async Task <IActionResult> Create(Ingredients ingredients)
        {
            await _ingredientsService.CreateAsync(ingredients);

            return(Ok(ingredients));
        }