Exemplo n.º 1
0
        /// <summary>
        /// Author: Jared Greenfield
        /// Created : 02/20/2019
        /// This constructor sets up all of our dummy data we will be using
        /// </summary>
        public RecipeAccessorMock()
        {
            _recipes = new List <Recipe>();
            _recipes.Add(new Recipe(100000, "Big Burger", "It's a large burger.", new DateTime(2004, 12, 2), true));
            _recipes.Add(new Recipe(100001, "Hot Dog", "It's a hot dog.", new DateTime(2004, 12, 2), true));
            _recipes.Add(new Recipe(100002, "Milkshake", "It's a milkshake.", new DateTime(2004, 12, 2), true));

            _recipes[0].RecipeLines = new List <RecipeItemLineVM>();
            _recipes[1].RecipeLines = new List <RecipeItemLineVM>();
            _recipes[2].RecipeLines = new List <RecipeItemLineVM>();

            RecipeItemLineVM burger = new RecipeItemLineVM(100000, 100000, "Patty", 1, "Whole");
            RecipeItemLineVM bun    = new RecipeItemLineVM(100001, 100000, "Bun", 1, "Whole");

            _recipes[0].RecipeLines.Add(burger);
            _recipes[0].RecipeLines.Add(bun);

            bun = new RecipeItemLineVM(100000, 100001, "Bun", 1, "Whole");
            RecipeItemLineVM hotdog = new RecipeItemLineVM(100000, 100001, "Hotdog", 1, "Whole");

            _recipes[1].RecipeLines.Add(bun);
            _recipes[1].RecipeLines.Add(hotdog);

            RecipeItemLineVM milk      = new RecipeItemLineVM(100000, 100002, "Milk", 1, "Gallon");
            RecipeItemLineVM chocolate = new RecipeItemLineVM(100000, 100002, "Chocolate", 1, "Gallon");

            _recipes[2].RecipeLines.Add(milk);
            _recipes[2].RecipeLines.Add(chocolate);
        }
        /// <summary>
        /// Jared Greenfield
        /// Created: 2018/01/24
        ///
        /// Creates a recipe line under the given ID.
        /// </summary>
        /// <param name="recipeID">The ID of the recipe that the line will be listed under.</param>
        /// <param name="line">The recipe line to be added.</param>
        /// <exception cref="SQLException">Insert Fails (example of exception tag)</exception>
        /// <returns>1 if successful, 0 if unsuccessful</returns>
        public int InsertRecipeItemLine(RecipeItemLineVM line, int recipeID)
        {
            int    returnedValue = 0;
            var    conn          = DBConnection.GetDbConnection();
            string cmdText       = @"sp_insert_recipe_item_line";

            try
            {
                SqlCommand cmd1 = new SqlCommand(cmdText, conn);
                cmd1.CommandType = CommandType.StoredProcedure;
                cmd1.Parameters.AddWithValue("@RecipeID", recipeID);
                cmd1.Parameters.AddWithValue("@ItemID", line.ItemID);
                cmd1.Parameters.AddWithValue("@Quantity", line.Quantity);
                cmd1.Parameters.AddWithValue("@UnitOfMeasure", line.UnitOfMeasure);
                try
                {
                    conn.Open();
                    returnedValue = cmd1.ExecuteNonQuery();
                }
                catch (Exception)
                {
                    throw;
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conn.Close();
            }
            return(returnedValue);
        }
Exemplo n.º 3
0
        public void TestUpdateRecipeValidInput()
        {
            //Arrange
            List <RecipeItemLineVM> recipeLines = new List <RecipeItemLineVM>();
            RecipeItemLineVM        burger      = new RecipeItemLineVM(100000, 100000, "Patty", 1, "Whole");
            RecipeItemLineVM        bun         = new RecipeItemLineVM(100001, 100000, "Bun", 1, "Whole");

            recipeLines.Add(burger);
            recipeLines.Add(bun);
            Recipe recipe = new Recipe(100000, "Test", "Test Recipe.", new DateTime(2004, 12, 2), true, recipeLines);

            //Act
            bool result = _recipeManager.UpdateRecipe(_recipes[0], recipe);

            _recipes = _recipeManager.RetrieveAllRecipes();
            Recipe updatedRecipe = _recipes.Find(x => x.RecipeID == recipe.RecipeID);

            //Assert
            Assert.AreEqual(recipe.RecipeID, updatedRecipe.RecipeID);
            Assert.AreEqual(recipe.Active, updatedRecipe.Active);
            Assert.AreEqual(recipe.DateAdded, updatedRecipe.DateAdded);
            Assert.AreEqual(recipe.Description, updatedRecipe.Description);
            Assert.AreEqual(recipe.Name, updatedRecipe.Name);
            CollectionAssert.AreEqual(recipe.RecipeLines, updatedRecipe.RecipeLines);
        }
Exemplo n.º 4
0
        public void TestCreateRecipeLineInvalidInputQuantityNegative()
        {
            //Arrange
            List <RecipeItemLineVM> recipeLines = new List <RecipeItemLineVM>();
            RecipeItemLineVM        burger      = new RecipeItemLineVM(100000, 100000, "Patty", -1, "Whole");

            //Act
            //Name has a maximum of 50 characters, so this should throw an exception
            int rows = _recipeManager.CreateRecipeItemLine(burger, burger.RecipeID);
        }
Exemplo n.º 5
0
        public void TestCreateRecipeLineInvalidInputNameNull()
        {
            //Arrange
            List <RecipeItemLineVM> recipeLines = new List <RecipeItemLineVM>();
            RecipeItemLineVM        burger      = new RecipeItemLineVM(100000, 100000, null, 1, "Whole");

            //Act
            //Name cannot be null, so this should throw an exception
            int rows = _recipeManager.CreateRecipeItemLine(burger, burger.RecipeID);
        }
Exemplo n.º 6
0
        public void TestCreateRecipeLineInvalidInputUnitOfMeasureEmptyString()
        {
            //Arrange
            List <RecipeItemLineVM> recipeLines = new List <RecipeItemLineVM>();
            RecipeItemLineVM        burger      = new RecipeItemLineVM(100000, 100000, "Patty", 1, "");

            //Act
            //UnitOfMeasure of measure cannot be an empty string, so this should throw an exception
            int rows = _recipeManager.CreateRecipeItemLine(burger, burger.RecipeID);
        }
Exemplo n.º 7
0
        public void TestCreateRecipeLineInvalidInputUnitOfMeasureContainsNumber()
        {
            //Arrange
            List <RecipeItemLineVM> recipeLines = new List <RecipeItemLineVM>();
            RecipeItemLineVM        burger      = new RecipeItemLineVM(100000, 100000, "Patty", 1, "1 Whole");

            //Act
            //UnitOfMeasure of measure has a maximum of 25 characters, so this should throw an exception
            int rows = _recipeManager.CreateRecipeItemLine(burger, burger.RecipeID);
        }
 /// <summary>
 /// Jared Greenfield
 /// Created: 2019/01/24
 ///
 /// Adds the RecipeItemLineVM object to the List and returns back to the Recipe page.
 /// </summary>
 private void BtnSubmit_Click(object sender, RoutedEventArgs e)
 {
     if (ValidatePage())
     {
         var line = new RecipeItemLineVM(_chosenItem.ItemID, _chosenItem.Name, Decimal.Parse(txtQuantity.Text), txtUnitOfMeasure.Text);
         _itemManager.items.Add(_chosenItem);
         _recipeManager.RecipeLines.Add(line);
         this.DialogResult = true;
     }
 }
Exemplo n.º 9
0
        public int InsertRecipeItemLine(RecipeItemLineVM line, int recipeID)
        {
            int    rowsAffected = 0;
            Recipe recipe       = _recipes.Find(x => x.RecipeID == recipeID);

            recipe.RecipeLines.Add(line);
            if (recipe.RecipeLines.Contains(line))
            {
                rowsAffected = 1;
            }
            return(rowsAffected);
        }
Exemplo n.º 10
0
        public void TestCreateRecipeLineValidInput()
        {
            //Arrange
            List <RecipeItemLineVM> recipeLines = new List <RecipeItemLineVM>();
            RecipeItemLineVM        burger      = new RecipeItemLineVM(100000, 100000, "Patty", 1, "Whole");

            //Act
            int    rows   = _recipeManager.CreateRecipeItemLine(burger, burger.RecipeID);
            Recipe recipe = _recipeManager.RetrieveRecipeByID(burger.RecipeID);

            //Assert
            Assert.AreEqual(1, rows);
            CollectionAssert.Contains(recipe.RecipeLines, burger);
        }
Exemplo n.º 11
0
        public void TestUpdateRecipeInvalidInputLinesInvalid()
        {
            //Arrange
            List <RecipeItemLineVM> recipeLines = new List <RecipeItemLineVM>();
            RecipeItemLineVM        burger      = new RecipeItemLineVM(100000, 100000, "Patty", 1, "Whole");
            RecipeItemLineVM        bun         = new RecipeItemLineVM(100001, 100000, "Bun" + createLongString(1000), 1, "Whole");

            recipeLines.Add(burger);
            recipeLines.Add(bun);
            Recipe newRecipe = new Recipe(100000, "Test", "Test Recipe.", DateTime.Now, true, recipeLines);
            Recipe oldRecipe = _recipes.Find(x => x.RecipeID == newRecipe.RecipeID);

            //Act
            // Recipe Name cannot be null, so this should throw an exception
            bool result = _recipeManager.UpdateRecipe(oldRecipe, newRecipe);
        }
Exemplo n.º 12
0
        public void TestUpdateRecipeInvalidInputDateAddedTooEarly()
        {
            //Arrange
            List <RecipeItemLineVM> recipeLines = new List <RecipeItemLineVM>();
            RecipeItemLineVM        burger      = new RecipeItemLineVM(100000, 100000, "Patty", 1, "Whole");
            RecipeItemLineVM        bun         = new RecipeItemLineVM(100001, 100000, "Bun", 1, "Whole");

            recipeLines.Add(burger);
            recipeLines.Add(bun);
            Recipe newRecipe = new Recipe(100000, "Test", "Test Recipe.", new DateTime(1899, 12, 13), true, recipeLines);
            Recipe oldRecipe = _recipes.Find(x => x.RecipeID == newRecipe.RecipeID);

            //Act
            // Date Added must be after 1900, so this should throw an exception
            bool result = _recipeManager.UpdateRecipe(oldRecipe, newRecipe);
        }
Exemplo n.º 13
0
        public void TestUpdateRecipeInvalidInputDescriptionTooLong()
        {
            //Arrange
            List <RecipeItemLineVM> recipeLines = new List <RecipeItemLineVM>();
            RecipeItemLineVM        burger      = new RecipeItemLineVM(100000, 100000, "Patty", 1, "Whole");
            RecipeItemLineVM        bun         = new RecipeItemLineVM(100001, 100000, "Bun", 1, "Whole");

            recipeLines.Add(burger);
            recipeLines.Add(bun);
            Recipe newRecipe = new Recipe(100000, "Test", "Test Recipe." + createLongString(1000), DateTime.Now, true, recipeLines);
            Recipe oldRecipe = _recipes.Find(x => x.RecipeID == newRecipe.RecipeID);

            //Act
            //Description has a maximum of 1000 characters, so this should throw an exception
            bool result = _recipeManager.UpdateRecipe(oldRecipe, newRecipe);
        }
        /// <summary>
        /// Jared Greenfield
        /// Created: 2018/01/29
        ///
        /// Creates a recipe line under the given ID.
        /// </summary>
        /// <param name="recipeID">The ID of the recipe that the line will be listed under.</param>
        /// <param name="line">The recipe line to be added.</param>
        /// <exception cref="SQLException">Insert Fails (example of exception tag)</exception>
        /// <returns>1 if successful, 0 if unsuccessful</returns>
        public List <RecipeItemLineVM> SelectRecipeLinesByID(int recipeID)
        {
            List <RecipeItemLineVM> lines = new List <RecipeItemLineVM>();
            var         conn    = DBConnection.GetDbConnection();
            string      cmdText = @"sp_select_recipe_item_lines";
            List <Item> items   = new List <Item>();

            try
            {
                items = _itemAccessor.SelectAllItems();
                SqlCommand cmd1 = new SqlCommand(cmdText, conn);
                cmd1.CommandType = CommandType.StoredProcedure;
                cmd1.Parameters.AddWithValue("@RecipeID", recipeID);
                try
                {
                    conn.Open();
                    var reader = cmd1.ExecuteReader();
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            int              itemID        = reader.GetInt32(1);
                            decimal          quantity      = reader.GetDecimal(2);
                            string           unitOfMeasure = reader.GetString(3);
                            var              item          = items.Find(x => x.ItemID == itemID);
                            string           itemName      = item.Name;
                            RecipeItemLineVM line          = new RecipeItemLineVM(itemID, recipeID, itemName, quantity, unitOfMeasure);
                            lines.Add(line);
                        }
                    }
                }
                catch (Exception)
                {
                    throw;
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conn.Close();
            }
            return(lines);
        }
Exemplo n.º 15
0
        public void TestCreateRecipeInvalidInputInvalidItem()
        {
            //Arrange
            List <RecipeItemLineVM> recipeLines = new List <RecipeItemLineVM>();
            RecipeItemLineVM        burger      = new RecipeItemLineVM(100000, 100000, "Patty", 1, "Whole");
            RecipeItemLineVM        bun         = new RecipeItemLineVM(100001, 100000, "Bun", 1, "Whole");

            recipeLines.Add(burger);
            recipeLines.Add(bun);
            Recipe recipe = new Recipe(100010, "Test", "Test Recipe.", DateTime.Now, true, recipeLines);

            Item item = new Item(100000, null, false, null, "Food" + createLongString(1000), "Test Recipe.", 0, "Test", 0, new DateTime(2008, 11, 11), true);

            Offering offering = new Offering(100000, "Item", 100000, "Test", (decimal)30, true);

            //Act
            int id = _recipeManager.CreateRecipe(recipe, item, offering);
        }
Exemplo n.º 16
0
        public void TestCreateRecipeInvalidInputDateAddedTooEarly()
        {
            //Arrange
            List <RecipeItemLineVM> recipeLines = new List <RecipeItemLineVM>();
            RecipeItemLineVM        burger      = new RecipeItemLineVM(100000, 100000, "Patty", 1, "Whole");
            RecipeItemLineVM        bun         = new RecipeItemLineVM(100001, 100000, "Bun", 1, "Whole");

            recipeLines.Add(burger);
            recipeLines.Add(bun);
            Recipe recipe = new Recipe(100010, "Test", "Test Recipe.", new DateTime(1899, 12, 13), true, recipeLines);

            Item item = new Item(100000, null, false, null, "Food", "Test Recipe.", 0, "Test", 0, new DateTime(2008, 11, 11), true);

            Offering offering = new Offering(100000, "Item", 100000, "Test", (decimal)30, true);

            //Act
            //Date must be after 1900, so this should throw an exception
            int id = _recipeManager.CreateRecipe(recipe, item, offering);
        }
Exemplo n.º 17
0
        public void TestCreateRecipeInvalidInputDescriptionNameTooLong()
        {
            //Arrange
            List <RecipeItemLineVM> recipeLines = new List <RecipeItemLineVM>();
            RecipeItemLineVM        burger      = new RecipeItemLineVM(100000, 100000, "Patty", 1, "Whole");
            RecipeItemLineVM        bun         = new RecipeItemLineVM(100001, 100000, "Bun", 1, "Whole");

            recipeLines.Add(burger);
            recipeLines.Add(bun);
            Recipe recipe = new Recipe(100010, "Test", "Test Recipe." + createLongString(1000), DateTime.Now, true, recipeLines);

            Item item = new Item(100000, null, false, null, "Food", "Test Recipe.", 0, "Test", 0, new DateTime(2008, 11, 11), true);

            Offering offering = new Offering(100000, "Item", 100000, "Test", (decimal)30, true);

            //Act
            // Description has a maximum of 1000 characters, so this should throw an exception
            int id = _recipeManager.CreateRecipe(recipe, item, offering);
        }
Exemplo n.º 18
0
        public void TestCreateRecipeInvalidInputRecipeNameEmptyString()
        {
            //Arrange
            List <RecipeItemLineVM> recipeLines = new List <RecipeItemLineVM>();
            RecipeItemLineVM        burger      = new RecipeItemLineVM(100000, 100000, "Patty", 1, "Whole");
            RecipeItemLineVM        bun         = new RecipeItemLineVM(100001, 100000, "Bun", 1, "Whole");

            recipeLines.Add(burger);
            recipeLines.Add(bun);
            Recipe recipe = new Recipe(100010, "", "Test Recipe.", DateTime.Now, true, recipeLines);

            Item item = new Item(100000, null, false, null, "Food", "Test Recipe.", 0, "Test", 0, new DateTime(2008, 11, 11), true);

            Offering offering = new Offering(100000, "Item", 100000, "Test", (decimal)30, true);

            //Act
            // Recipe Name cannot be an empty string, so this should throw an exception
            int id = _recipeManager.CreateRecipe(recipe, item, offering);
        }
Exemplo n.º 19
0
        /// <summary author="Jared Greenfield" created="2019/01/25">
        /// Adds a Recipe Line to the database.
        /// </summary>
        /// <updates>
        /// <update author="Jared Greenfield" date="2019/02/21">
        /// Added the validation and exception throwing
        /// </update>
        /// </updates>
        /// <param name="recipeItemLine">The line to be added to the database.</param>
        /// <param name="recipeID">The ID of the recipe it belongs to.</param>
        /// <exception cref="SQLException">Insert Fails (example of exception tag)</exception>
        /// <returns>Rows affected.</returns>
        public int CreateRecipeItemLine(RecipeItemLineVM recipeItemLine, int recipeID)
        {
            int returnedValue = 0;

            if (recipeItemLine.IsValid())
            {
                try
                {
                    returnedValue = _recipeAccessor.InsertRecipeItemLine(recipeItemLine, recipeID);
                }
                catch (Exception ex)
                {
                    ExceptionLogManager.getInstance().LogException(ex);
                    throw ex;
                }
            }
            else
            {
                throw new ArgumentException("This Recipe Line is invalid.");
            }

            return(returnedValue);
        }
Exemplo n.º 20
0
        public void TestCreateRecipeValidInput()
        {
            //Arrange
            List <RecipeItemLineVM> recipeLines = new List <RecipeItemLineVM>();
            RecipeItemLineVM        burger      = new RecipeItemLineVM(100000, 100000, "Patty", 1, "Whole");
            RecipeItemLineVM        bun         = new RecipeItemLineVM(100001, 100000, "Bun", 1, "Whole");

            recipeLines.Add(burger);
            recipeLines.Add(bun);
            Recipe recipe = new Recipe(100010, "Test", "Test Recipe.", DateTime.Now, true, recipeLines);

            Item item = new Item(100000, null, false, null, "Food", "Test Recipe.", 0, "Test", 0, new DateTime(2008, 11, 11), true);

            Offering offering = new Offering(100000, "Item", 100000, "Test", (decimal)30, true);

            //Act
            int    id        = _recipeManager.CreateRecipe(recipe, item, offering);
            Recipe newRecipe = _recipeManager.RetrieveRecipeByID(100010);

            //Assert
            Assert.AreEqual(100010, id);
            Assert.IsNotNull(newRecipe);
        }