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)); }