public async Task DoesGetAllCookingVesselsSelectListAsyncWorkCorrectly()
        {
            var list = new TestAsyncEnumerable <CookingVessel>(new List <CookingVessel>
            {
                new CookingVessel
                {
                    Name     = TestName,
                    Form     = PanForm.Circle,
                    Diameter = TestDiameter,
                    Height   = TestHeight,
                    Area     = 314.33,
                    Volume   = 2200.33,
                },
            }).AsQueryable();

            var mockCookingVesselsRepo = new Mock <IDeletableEntityRepository <CookingVessel> >(MockBehavior.Strict);

            mockCookingVesselsRepo.Setup(x => x.AllAsNoTracking()).Returns(list);

            var mockRecipesRepo = new Mock <IDeletableEntityRepository <Recipe> >();

            var service = new CookingVesselsService(mockCookingVesselsRepo.Object, mockRecipesRepo.Object);

            var cookingVessels = await service.GetAllCookingVesselsSelectListAsync();

            var count = cookingVessels.ToList().Count();

            Assert.Equal(1, count);
        }
        private ICookingVesselsService CreateMockAndConfigureService(IList <CookingVessel> list, IList <Recipe> recipesList)
        {
            var mockCookingVesselsRepo = new Mock <IDeletableEntityRepository <CookingVessel> >();

            mockCookingVesselsRepo.Setup(x => x.All()).Returns(list.AsQueryable());
            mockCookingVesselsRepo.Setup(x => x.AddAsync(It.IsAny <CookingVessel>()))
            .Callback((CookingVessel cookingVessel) => list.Add(cookingVessel));
            mockCookingVesselsRepo.Setup(x => x.Delete(It.IsAny <CookingVessel>()))
            .Callback((CookingVessel cookingVessel) => cookingVessel.IsDeleted = true);

            var mockRecipesRepo = new Mock <IDeletableEntityRepository <Recipe> >();

            mockRecipesRepo.Setup(x => x.All()).Returns(new TestAsyncEnumerable <Recipe>(recipesList).AsQueryable());
            mockRecipesRepo.Setup(x => x.Update(It.IsAny <Recipe>()))
            .Callback((Recipe recipe) =>
            {
                recipesList.FirstOrDefault(x => x.Id == TestRecipeId).CookingVessel   = recipe.CookingVessel;
                recipesList.FirstOrDefault(x => x.Id == TestRecipeId).CookingVesselId = recipe.CookingVesselId;
            });

            var service = new CookingVesselsService(mockCookingVesselsRepo.Object, mockRecipesRepo.Object);

            return(service);
        }