Exemplo n.º 1
0
        public void InvokeDataCommitOnce_WhenThePassedArgumentsAreValid()
        {
            //Arrange
            var dataMock           = new Mock <IHomeMadeFoodData>();
            var recipesServiceMock = new Mock <IRecipesService>();
            DailyMenuService   dailyMenuService = new DailyMenuService(dataMock.Object, recipesServiceMock.Object);
            Guid               recipeId         = Guid.NewGuid();
            IEnumerable <Guid> recipesIds       = new List <Guid>()
            {
                recipeId
            };
            DateTime date = new DateTime(2017, 5, 5);

            Guid dailyMenuId = Guid.NewGuid();

            var ingredients = new List <Ingredient>()
            {
                new Ingredient()
                {
                    Id                      = Guid.NewGuid(),
                    Name                    = "IngredientName",
                    FoodCategoryId          = Guid.NewGuid(),
                    RecipeId                = recipeId,
                    QuantityInMeasuringUnit = 0.200,
                    PricePerMeasuringUnit   = 1.29m
                }
            };

            var recipe = new Recipe()
            {
                Id          = recipeId,
                Title       = "Title Of A New Recipe",
                Describtion = "This is a decsribtion",
                Instruction = "Instructions of the recipe",
                DishType    = DishType.MainDish,
                Ingredients = ingredients
            };

            var recipes = new List <Recipe>()
            {
                recipe
            };

            DailyMenu dailyMenu = new DailyMenu()
            {
                Id        = dailyMenuId,
                Date      = date,
                DayOfWeek = date.DayOfWeek
            };

            recipesServiceMock.Setup(x => x.GetAllRecipes()).Returns(recipes);

            dataMock.Setup(x => x.DailyMenus.Add(dailyMenu));

            //Act
            dailyMenuService.AddDailyMenu(date, recipesIds);

            //Assert
            dataMock.Verify(x => x.SaveChanges(), Times.Once);
        }
Exemplo n.º 2
0
        public void ReturnTheCostOfTheFoodCategoriesPasses_WhenThePassedParameter_FoodCategoriesOfActiveDailyMenus_IsValid()
        {
            //Arrange
            var dataMock                      = new Mock <IHomeMadeFoodData>();
            var recipesServiceMock            = new Mock <IRecipesService>();
            DailyMenuService dailyMenuService = new DailyMenuService(dataMock.Object, recipesServiceMock.Object);
            var foodCategories                = new List <FoodCategory>();

            var firstFoodCategory = new FoodCategory()
            {
                Id   = Guid.NewGuid(),
                Name = "First Food Category",
                CostOfAllCategoryIngredients     = 9.99m,
                QuantityOfAllCategoryIngredients = 1.234
            };

            var secondFoodCategory = new FoodCategory()
            {
                Id   = Guid.NewGuid(),
                Name = "Second Food Category",
                CostOfAllCategoryIngredients     = 1m,
                QuantityOfAllCategoryIngredients = 1
            };

            foodCategories.Add(firstFoodCategory);
            foodCategories.Add(secondFoodCategory);

            var expectedResult = firstFoodCategory.CostOfAllCategoryIngredients + secondFoodCategory.CostOfAllCategoryIngredients;

            //Act
            var actualResult = dailyMenuService.CalculateShoppingListCostForActiveDailyMenus(foodCategories);

            Assert.AreEqual(expectedResult, actualResult);
        }
Exemplo n.º 3
0
        public void ShouldThrow_WhenGuidIdParameterIsEmpty()
        {
            //Arrange
            var dataMock                      = new Mock <IHomeMadeFoodData>();
            var recipesServiceMock            = new Mock <IRecipesService>();
            DailyMenuService dailyMenuService = new DailyMenuService(dataMock.Object, recipesServiceMock.Object);

            //Act&Assert
            Assert.Throws <ArgumentException>(() => dailyMenuService.GetDailyMenuById(Guid.Empty));
        }
        public void ThrowArgumentNullException_WhenThePassedParameterCollectionOfDailyMenusIsNull()
        {
            //Arrange
            var dataMock           = new Mock <IHomeMadeFoodData>();
            var recipesServiceMock = new Mock <IRecipesService>();
            DailyMenuService        dailyMenuService = new DailyMenuService(dataMock.Object, recipesServiceMock.Object);
            IEnumerable <DailyMenu> dailyMenus       = null;

            //Act & Assert
            Assert.Throws <ArgumentNullException>(() =>
                                                  dailyMenuService.GetShoppingListOfFoodCategoriesForActiveDailyMenus(dailyMenus));
        }
Exemplo n.º 5
0
        public void Throw_WhenThePassedParameter_FoodCategoriesOfActiveDailyMenus_IsNull()
        {
            //Arrange
            var dataMock           = new Mock <IHomeMadeFoodData>();
            var recipesServiceMock = new Mock <IRecipesService>();
            DailyMenuService           dailyMenuService = new DailyMenuService(dataMock.Object, recipesServiceMock.Object);
            IEnumerable <FoodCategory> foodCategories   = null;

            //Act & Assert
            Assert.Throws <ArgumentNullException>(() =>
                                                  dailyMenuService.CalculateShoppingListCostForActiveDailyMenus(foodCategories));
        }
        public void Throw_WhenThePassedDailyMenuIsNull()
        {
            //Arrange
            var dataMock                      = new Mock <IHomeMadeFoodData>();
            var recipesServiceMock            = new Mock <IRecipesService>();
            DailyMenuService dailyMenuService = new DailyMenuService(dataMock.Object, recipesServiceMock.Object);

            dataMock.Setup(x => x.DailyMenus.Delete(It.IsAny <DailyMenu>()));

            //Act & Assert
            Assert.Throws <ArgumentNullException>(() => dailyMenuService.DeleteDailyMenu(null));
        }
Exemplo n.º 7
0
        public void ReturnDaliMenu_WhenIdIsValid()
        {
            //Arrange
            var dataMock                      = new Mock <IHomeMadeFoodData>();
            var recipesServiceMock            = new Mock <IRecipesService>();
            DailyMenuService dailyMenuService = new DailyMenuService(dataMock.Object, recipesServiceMock.Object);

            Guid dailyMenuId = Guid.NewGuid();
            Guid recipeId    = Guid.NewGuid();

            var ingredients = new List <Ingredient>()
            {
                new Ingredient()
                {
                    Id                      = Guid.NewGuid(),
                    Name                    = "IngredientName",
                    FoodCategoryId          = Guid.NewGuid(),
                    RecipeId                = recipeId,
                    QuantityInMeasuringUnit = 0.200,
                    PricePerMeasuringUnit   = 1.29m
                }
            };

            var recipe = new Recipe()
            {
                Id          = recipeId,
                Title       = "Title Of A New Recipe",
                Describtion = "This is a decsribtion",
                Instruction = "Instructions of the recipe",
                DishType    = DishType.MainDish,
                Ingredients = ingredients
            };

            DailyMenu dailyMenu = new DailyMenu()
            {
                Id        = dailyMenuId,
                Date      = DateTime.Today,
                DayOfWeek = DateTime.Today.DayOfWeek,
                Recipes   = new List <Recipe>()
                {
                    recipe
                }
            };

            dataMock.Setup(c => c.DailyMenus.GetById(dailyMenuId)).Returns(dailyMenu);

            //Act
            DailyMenu dailyMenuResult = dailyMenuService.GetDailyMenuById(dailyMenuId);

            //Assert
            Assert.AreSame(dailyMenu, dailyMenuResult);
        }
        public void Throw_WhenThePassedCollectionOfRecipeIdsIsNullOrEmpty()
        {
            //Arrange
            var dataMock           = new Mock <IHomeMadeFoodData>();
            var recipesServiceMock = new Mock <IRecipesService>();
            DailyMenuService   dailyMenuService = new DailyMenuService(dataMock.Object, recipesServiceMock.Object);
            IEnumerable <Guid> recipesIds       = new List <Guid>();
            DateTime           date             = new DateTime();
            Guid id = Guid.NewGuid();

            //Act & Assert
            Assert.Throws <ArgumentException>(() => dailyMenuService.EditDailyMenu(id, date, recipesIds));
        }
Exemplo n.º 9
0
        public void CreateANewInstanceOfDailymenuService_WhenPassedParameters_AreValid()
        {
            //Arrange
            var recipesServiceMock = new Mock <IRecipesService>();
            var dataMock           = new Mock <IHomeMadeFoodData>();

            //Act
            var dailyMenuService = new DailyMenuService(dataMock.Object, recipesServiceMock.Object);

            //Assert
            Assert.IsNotNull(dailyMenuService);
            Assert.IsInstanceOf <DailyMenuService>(dailyMenuService);
        }
        public void InvokeDataCommitOnce_WhenThePassedArgumentsAreValid()
        {
            var dataMock                      = new Mock <IHomeMadeFoodData>();
            var recipesServiceMock            = new Mock <IRecipesService>();
            DailyMenuService dailyMenuService = new DailyMenuService(dataMock.Object, recipesServiceMock.Object);

            Guid dailyMenuId = Guid.NewGuid();
            Guid recipeId    = Guid.NewGuid();

            var ingredients = new List <Ingredient>()
            {
                new Ingredient()
                {
                    Id                      = Guid.NewGuid(),
                    Name                    = "IngredientName",
                    FoodCategoryId          = Guid.NewGuid(),
                    RecipeId                = recipeId,
                    QuantityInMeasuringUnit = 0.200,
                    PricePerMeasuringUnit   = 1.29m
                }
            };

            var recipe = new Recipe()
            {
                Id          = recipeId,
                Title       = "Title Of A New Recipe",
                Describtion = "This is a decsribtion",
                Instruction = "Instructions of the recipe",
                DishType    = DishType.MainDish,
                Ingredients = ingredients
            };

            DailyMenu dailyMenu = new DailyMenu()
            {
                Id        = dailyMenuId,
                Date      = DateTime.Today,
                DayOfWeek = DateTime.Today.DayOfWeek,
                Recipes   = new List <Recipe>()
                {
                    recipe
                }
            };

            dataMock.Setup(x => x.DailyMenus.Delete(It.IsAny <DailyMenu>()));

            //Act
            dailyMenuService.DeleteDailyMenu(dailyMenu);

            //Assert
            dataMock.Verify(x => x.SaveChanges(), Times.Once);
        }
        public void Invoke_TheDataDailyMenusRepositoryMethodGetAll_Once()
        {
            //Arrange
            var dataMock           = new Mock <IHomeMadeFoodData>();
            var recipesServiceMock = new Mock <IRecipesService>();
            DailyMenuService        dailyMenuService         = new DailyMenuService(dataMock.Object, recipesServiceMock.Object);
            IEnumerable <DailyMenu> expectedResultCollection = new List <DailyMenu>();

            dataMock.Setup(x => x.DailyMenus.All).Returns(() => {
                return(expectedResultCollection.AsQueryable());
            });

            //Act
            IEnumerable <DailyMenu> dailyMenus = dailyMenuService.GetAllDailyMenus();

            //Assert
            dataMock.Verify(x => x.DailyMenus.All, Times.Once);
        }
Exemplo n.º 12
0
        public void ReturnNull_WhenIdIsValidButThereIsNoSuchDailyMenuInTheDatabase()
        {
            //Arrange
            var dataMock                      = new Mock <IHomeMadeFoodData>();
            var recipesServiceMock            = new Mock <IRecipesService>();
            DailyMenuService dailyMenuService = new DailyMenuService(dataMock.Object, recipesServiceMock.Object);

            Guid dailyMenuId = Guid.NewGuid();
            Guid recipeId    = Guid.NewGuid();

            dataMock.Setup(c => c.DailyMenus.GetById(dailyMenuId)).Returns <DailyMenu>(null);

            //Act
            DailyMenu dailyMenuResult = dailyMenuService.GetDailyMenuById(dailyMenuId);

            //Assert
            Assert.IsNull(dailyMenuResult);
        }
        public void ReturnNull_WhenDataDailyMenusReposityMethodGetAll_ReturnsNull()
        {
            //Arrange
            var dataMock           = new Mock <IHomeMadeFoodData>();
            var recipesServiceMock = new Mock <IRecipesService>();

            dataMock.Setup(c => c.DailyMenus.All).Returns(() =>
            {
                return(null);
            });

            DailyMenuService dailyMenuServce = new DailyMenuService(dataMock.Object, recipesServiceMock.Object);

            //Act
            IEnumerable <DailyMenu> dailyMenusResult = dailyMenuServce.GetAllDailyMenus();

            //Assert
            Assert.IsNull(dailyMenusResult);
        }
Exemplo n.º 14
0
        public void ReturnNull_IfThereAreNoDailyMenus()
        {
            //Arrange
            var dataMock                      = new Mock <IHomeMadeFoodData>();
            var recipesServiceMock            = new Mock <IRecipesService>();
            DailyMenuService dailyMenuService = new DailyMenuService(dataMock.Object, recipesServiceMock.Object);
            var expectedResult                = new List <DailyMenu>()
            {
                null
            };

            dataMock.Setup(x => x.DailyMenus.GetAllIncluding(d => d.Recipes)).Returns(expectedResult);

            //Act
            var actualResult = dailyMenuService.GetFiveDailyMenusForTheNextWeek();

            //Assert
            Assert.AreEqual(expectedResult, actualResult);
        }
        public void ReturnResultOfCorrectTypeIEnumerableOfDailyMenu()
        {
            //Arrange
            var dataMock           = new Mock <IHomeMadeFoodData>();
            var recipesServiceMock = new Mock <IRecipesService>();

            dataMock.Setup(c => c.DailyMenus.All).Returns(() =>
            {
                IEnumerable <DailyMenu> expectedResultCollection = new List <DailyMenu>();
                return(expectedResultCollection.AsQueryable());
            });

            DailyMenuService dailyMenuService = new DailyMenuService(dataMock.Object, recipesServiceMock.Object);

            //Act
            IEnumerable <DailyMenu> dailyMenuResult = dailyMenuService.GetAllDailyMenus();

            //Assert
            Assert.That(dailyMenuResult, Is.InstanceOf <IEnumerable <DailyMenu> >());
        }
        public void ReturnResult_WhenInvokingDataDailyMenusRepositoryMethod_GetAll()
        {
            //Arrange
            var dataMock = new Mock <IHomeMadeFoodData>();
            IEnumerable <DailyMenu> expectedResultCollection = new List <DailyMenu>();
            var recipesServiceMock = new Mock <IRecipesService>();

            dataMock.Setup(c => c.DailyMenus.All).Returns(() =>
            {
                return(expectedResultCollection.AsQueryable());
            });

            DailyMenuService dailyMenuService = new DailyMenuService(dataMock.Object, recipesServiceMock.Object);

            //Act
            IEnumerable <DailyMenu> dailyMenuResult = dailyMenuService.GetAllDailyMenus();

            //Assert
            Assert.That(dailyMenuResult, Is.EqualTo(expectedResultCollection));
        }
Exemplo n.º 17
0
        public void ReturnsIEnumerableOfDailyMenus_WithCountOfFive()
        {
            //Arrange
            var dataMock                      = new Mock <IHomeMadeFoodData>();
            var recipesServiceMock            = new Mock <IRecipesService>();
            DailyMenuService dailyMenuService = new DailyMenuService(dataMock.Object, recipesServiceMock.Object);
            var expectedResult                = new List <DailyMenu>();
            var count = 5;

            for (int i = 0; i < count; i++)
            {
                expectedResult.Add(It.IsAny <DailyMenu>());
            }

            dataMock.Setup(x => x.DailyMenus.GetAllIncluding(d => d.Recipes)).Returns(expectedResult);

            //Act
            var actualResult = dailyMenuService.GetFiveDailyMenusForTheNextWeek();

            //Assert
            Assert.AreEqual(expectedResult.Count, actualResult.Count());
        }
        public void ReturnsAFoodCategriesCollection_WhenThePassedParameterIsValid()
        {
            //Arrange
            var dataMock                      = new Mock <IHomeMadeFoodData>();
            var recipesServiceMock            = new Mock <IRecipesService>();
            DailyMenuService dailyMenuService = new DailyMenuService(dataMock.Object, recipesServiceMock.Object);
            var ingredients                   = new List <Ingredient>();
            var ingredientId                  = Guid.NewGuid();
            var ingredientName                = "Ingredient Name";
            var ingredient                    = new Ingredient()
            {
                Id   = ingredientId,
                Name = ingredientName
            };

            ingredients.Add(ingredient);
            var recipeId    = Guid.NewGuid();
            var recipeTitle = "Title of the recipe";
            var recipe      = new Recipe()
            {
                Id          = recipeId,
                Title       = recipeTitle,
                Ingredients = ingredients
            };
            var dailyMenus = new List <DailyMenu>();
            var dailyMenu  = new DailyMenu()
            {
                Recipes = new List <Recipe>()
                {
                    recipe
                }
            };

            dailyMenus.Add(dailyMenu);

            dataMock.Setup(x => x.Ingredients.All).Returns(ingredients.AsQueryable());
            var foodcategory   = It.IsAny <FoodCategory>();
            var foodCategories = new List <FoodCategory>()
            {
                foodcategory
            };

            var recipes        = dailyMenus.SelectMany(x => x.Recipes).ToList();
            var expectedResult = new List <FoodCategory>();

            foreach (var dailyMenuRecipe in recipes)
            {
                foreach (var item in dailyMenuRecipe.Ingredients)
                {
                    dataMock.Setup(x => x.FoodCategories.GetById(item.Id)).Returns(foodcategory);
                    expectedResult.Add(foodcategory);
                }
            }
            dataMock.Setup(x => x.FoodCategories.All).Returns(foodCategories.AsQueryable());

            //Act
            var actualResult = dailyMenuService.GetShoppingListOfFoodCategoriesForActiveDailyMenus(dailyMenus);

            //Assert
            Assert.IsNotNull(actualResult);
            Assert.AreEqual(expectedResult, actualResult);
        }
        public void ReturnsNull_WhenThereAreNoFoodcategoriesToReturn()
        {
            //Arrange
            var dataMock                      = new Mock <IHomeMadeFoodData>();
            var recipesServiceMock            = new Mock <IRecipesService>();
            DailyMenuService dailyMenuService = new DailyMenuService(dataMock.Object, recipesServiceMock.Object);
            var ingredients                   = new List <Ingredient>();
            var ingredientId                  = Guid.NewGuid();
            var ingredientName                = "Ingredient Name";
            var ingredient                    = new Ingredient()
            {
                Id   = ingredientId,
                Name = ingredientName
            };

            ingredients.Add(ingredient);
            var recipeId    = Guid.NewGuid();
            var recipeTitle = "Title of the recipe";
            var recipe      = new Recipe()
            {
                Id          = recipeId,
                Title       = recipeTitle,
                Ingredients = ingredients
            };
            var dailyMenus = new List <DailyMenu>();
            var dailyMenu  = new DailyMenu()
            {
                Recipes = new List <Recipe>()
                {
                    recipe
                }
            };

            dailyMenus.Add(dailyMenu);

            dataMock.Setup(x => x.Ingredients.All).Returns(ingredients.AsQueryable());

            var recipes = dailyMenus.SelectMany(x => x.Recipes).ToList();
            IEnumerable <FoodCategory> expectedResult = new List <FoodCategory>()
            {
                null
            };

            foreach (var dailyMenuRecipe in recipes)
            {
                foreach (var item in dailyMenuRecipe.Ingredients)
                {
                    dataMock.Setup(x => x.FoodCategories.GetById(item.Id)).Returns <FoodCategory>(null);
                }
            }
            dataMock.Setup(x => x.FoodCategories.All).Returns(() =>
            {
                return(expectedResult.AsQueryable());
            });

            //Act
            var actualResult = dailyMenuService.GetShoppingListOfFoodCategoriesForActiveDailyMenus(dailyMenus);

            //Assert
            Assert.AreEqual(expectedResult, actualResult);
        }