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