public async Task RecoverCocktail_When_ItIsDeleted() { var testCocktailName = "TestCocktailName"; var options = Utils.GetOptions(nameof(RecoverCocktail_When_ItIsDeleted)); var entityCocktail = new Cocktail() { Name = testCocktailName, IsDeleted = true, }; var dto = new CocktailDTO() { Name = testCocktailName, }; var mockMapper = new Mock <ICocktailMapper>(); mockMapper.Setup(x => x.MapDTOToEntity(It.IsAny <CocktailDTO>())) .Returns((CocktailDTO x) => new Cocktail() { Name = x.Name, }); mockMapper.Setup(x => x.MapEntityToDTO(It.IsAny <Cocktail>())) .Returns((Cocktail x) => new CocktailDTO() { Name = x.Name, }); var mockBarMapper = new Mock <IBarMapper>(); using (var arrangeContext = new BCcontext(options)) { await arrangeContext.Cocktails .AddAsync(entityCocktail); await arrangeContext.SaveChangesAsync(); } using (var actContext = new BCcontext(options)) { var sut = new CocktailsService(actContext, mockMapper.Object, mockBarMapper.Object); var cocktail = sut.CreateAsync(dto); await actContext.SaveChangesAsync(); } using (var assertContext = new BCcontext(options)) { var sut = new CocktailsService(assertContext, mockMapper.Object, mockBarMapper.Object); var cocktail = await sut.CreateAsync(dto); Assert.AreEqual(1, assertContext.Cocktails.Count()); Assert.IsNotNull(cocktail); Assert.AreEqual(testCocktailName, testCocktailName); Assert.IsFalse(cocktail.IsDeleted); } }
public async Task CreateCocktail_When_ItDoesNotExist() { var testCocktailName = "TestCocktailName"; var options = Utils.GetOptions(nameof(CreateCocktail_When_ItDoesNotExist)); var ingredient1 = new Ingredient() { Id = Utils.MySampleGuid(), Name = "SampleIngredientName", IsAlcoholic = true, }; var ingredient2 = new Ingredient() { Id = Utils.MySampleGuid2(), Name = "SampleIngredientName", IsAlcoholic = true, }; var entityCocktail = new Cocktail() { Name = "SampleCocktailName" }; var mockMapper = new Mock <ICocktailMapper>(); mockMapper.Setup(x => x.MapDTOToEntity(It.IsAny <CocktailDTO>())) .Returns((CocktailDTO x) => new Cocktail() { Name = x.Name, }); mockMapper.Setup(x => x.MapEntityToDTO(It.IsAny <Cocktail>())) .Returns((Cocktail x) => new CocktailDTO() { Name = x.Name, }); var mockBarMapper = new Mock <IBarMapper>(); var dto = new CocktailDTO() { Name = testCocktailName, IsAlcoholic = true, Ingredients = new List <CocktailIngredientDTO>() { new CocktailIngredientDTO() { IngredientId = Utils.MySampleGuid3(), Parts = 2 } }, }; var ingredient = new Ingredient() { Id = Utils.MySampleGuid3(), IsAlcoholic = true, }; var sampleEntity = new Cocktail() { Name = "TestName", IsAlcoholic = false, IsDeleted = true }; using (var arrangeContext = new BCcontext(options)) { await arrangeContext.Ingredients.AddAsync(ingredient); await arrangeContext.Cocktails .AddAsync(entityCocktail); await arrangeContext.SaveChangesAsync(); } using (var actContext = new BCcontext(options)) { var sut = new CocktailsService(actContext, mockMapper.Object, mockBarMapper.Object); var cocktail = sut.CreateAsync(dto); await actContext.SaveChangesAsync(); } using (var assertContext = new BCcontext(options)) { Assert.AreEqual(2, assertContext.Cocktails.Count()); var cocktail = await assertContext.Cocktails .FirstOrDefaultAsync(x => x.Name == testCocktailName); Assert.IsNotNull(cocktail); Assert.AreEqual(testCocktailName, cocktail.Name); Assert.IsTrue(cocktail.IsAlcoholic); } }