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