public void TestMethod2() // test sprawdzajacy czy 2 osobne zamówienia będą miały ten sam nr
        {
            //Arrange
            Product        mc    = new MainCourse("Schabowy z fryktami", 30);
            Product        pizza = new Pizza("Pizza Tosca z podwójnym serem", 27);
            Product        cola  = new DrinkSoup("Cola", 5);
            List <Product> list  = new List <Product>();

            list.Add(mc);
            list.Add(pizza);
            list.Add(cola);

            //Act
            Order order  = new Order(list);
            Order order2 = new Order(list);

            //Assert
            Assert.IsTrue(order.Get_Order_Nr() != order2.Get_Order_Nr());
        }
        public void TestMethod1()         // Test metody czy string który zwraca jest w postaci html
        {
            //Arrange
            Product        mc    = new MainCourse("Schabowy z fryktami", 30);
            Product        pizza = new Pizza("Pizza Tosca z podwójnym serem", 27);
            Product        cola  = new DrinkSoup("Cola", 5);
            List <Product> list  = new List <Product>();

            list.Add(mc);
            list.Add(pizza);
            list.Add(cola);
            Order order = new Order(list);

            //Act
            string htmlText = MailSender.ContentEmail(order);

            //htmlText = "cos"; // powinien byc blad

            //Assert
            Assert.IsTrue(htmlText != HttpUtility.HtmlEncode(htmlText)); // konwertuje text na html
        }
        // kod dla Forms Menu
        #region Menu
        public static Product SelectedDish(System.Windows.Forms.ComboBox comboBoxMainDishes1, System.Windows.Forms.ComboBox comboMainDishes2, System.Windows.Forms.ComboBox comboBoxAdditions, Dictionary <string, double> products)
        {
            // jeśli wybrano głowne danie z indeksu od 0 do 3 to stwórz obiekt product i w razie czego udekoruj (dodaj dodatek)
            if (comboBoxMainDishes1.SelectedIndex >= 0 && comboBoxMainDishes1.SelectedIndex <= 3)
            {
                string name = (comboBoxMainDishes1.SelectedItem.ToString()); // przypisz nazwę obiektu z comboBoxMainDishes1
                double cost;
                try
                {
                    cost = products[name];   // wybierz z kolekcji products odpowiedni produkt i przekaż jego wartość
                }
                catch (KeyNotFoundException) // szukany klucz nie isnieje to przerwij działanie funkcji ("łapie" błąd)
                {
                    MessageBox.Show("Podane danie nie istnieje", "Wybierz danie",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Information); // wyświetl komunikat
                    return(null);
                }

                // stwórz obiekt product o podanej nazwie (name) i kwocie (cost)
                Product product = new Pizza(name, cost);
                // jeśli został wybrany dodatek to udekoruj product
                if (comboBoxAdditions.SelectedItem != null && comboBoxMainDishes1.SelectedIndex > 0)
                {
                    switch (comboBoxAdditions.SelectedIndex)
                    {
                    case 1:
                        product = new PizzaDoubleCheese(product);     // pizza z podwójnym serem
                        break;

                    case 2:
                        product = new PizzaSalami(product);     // pizza z salami
                        break;

                    case 3:
                        product = new PizzaHam(product);     // pizza z szynką
                        break;

                    case 4:
                        product = new PizzaChampignons(product);     // pizza z pieczarkami
                        break;

                    default:
                        break;
                    }
                }

                return(product);
            }
            // jeśli wybrano głowne danie z indeksu od 4 to stwórz obiekt product i w razie czego udekoruj (dodaj dodatek)
            else if (comboBoxMainDishes1.SelectedIndex == 4)
            {
                StringBuilder name = new StringBuilder(comboBoxMainDishes1.SelectedItem.ToString()); // przypisz nazwę obiektu (string) z comboBoxMainDishes1
                comboMainDishes2.BackColor = Color.White;                                            // ustaw okno wyboru głownego dania na kolor biały
                if (comboMainDishes2.SelectedItem != null)                                           // gdy zostało wybrane pole dodatku do dania głownego (np. dla schabowego frytki, ziemniaki, ryż)
                {
                    double cost;
                    try
                    {
                        cost = products[name.ToString()]; // wybierz z kolekcji products odpowiedni produkt i przekaż jego wartość
                    }
                    catch (KeyNotFoundException)          // szukany klucz nie isnieje to przerwij działanie funkcji ("łapie" błąd)
                    {
                        MessageBox.Show("Podane danie nie istnieje", "Wybierz danie",
                                        MessageBoxButtons.OK,
                                        MessageBoxIcon.Information); // wyświetl komunikat
                        return(null);
                    }
                    name.Append(" " + comboMainDishes2.SelectedItem.ToString()); // dopisz nazwę obiektu (string) z comboBoxMainDishes2

                    Product product = new MainCourse(name.ToString(), cost);     // stwórz obiekt product o podanej nazwie (name) i kwocie (cost)
                    // jeśli wybrano dodatki to udekoruj product
                    if (comboBoxAdditions.SelectedItem != null && comboBoxAdditions.SelectedIndex > 0)
                    {
                        switch (comboBoxAdditions.SelectedIndex)
                        {
                        case 1:
                            product = new MainCourseSalads(product);     // z sałatkami
                            break;

                        case 2:
                            product = new MainCourseSauces(product);     // z sosami
                            break;
                        }
                    }
                    comboMainDishes2.SelectedItem = null;  // ustaw comboMainDishes2 wybrany indeks na null aby zapobiec "zapisaniu" dania następnego jako poprzednie

                    return(product);
                }
                else
                {
                    MessageBox.Show("Wybierz z czym chcesz to danie", "Wybierz danie",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);
                    comboMainDishes2.BackColor = Color.LightBlue;       // okienko pojawia się jeśli nie wybrano dodatku do dania głównego
                    return(null);
                }
            }
            // jeśli wybrano głowne danie z indeksu od 5 do 6 to stwórz obiekt product i w razie czego udekoruj (dodaj dodatek)
            else if (comboBoxMainDishes1.SelectedIndex > 4 && comboBoxMainDishes1.SelectedIndex <= 6)
            {
                string name = comboBoxMainDishes1.SelectedItem.ToString();   // przypisz nazwę obiektu (string) z comboBoxMainDishes1
                double cost;
                try
                {
                    cost = products[name];   // wybierz z kolekcji products odpowiedni produkt i przekaż jego wartość
                }
                catch (KeyNotFoundException) // szukany klucz nie isnieje to przerwij działanie funkcji ("łapie" błąd)
                {
                    MessageBox.Show("Podane danie nie istnieje", "Wybierz danie",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Information); // wyświetl komunikat
                    return(null);
                }

                Product product = new MainCourse(name, cost);  // stwórz obiekt product o podanej nazwie (name) i kwocie (cost)
                // jeśli wybrano dodatki to udekoruj product
                if (comboBoxAdditions.SelectedItem != null && comboBoxAdditions.SelectedIndex > 0)
                {
                    switch (comboBoxAdditions.SelectedIndex)
                    {
                    case 1:
                        product = new MainCourseSalads(product);     // z sałatkami
                        break;

                    case 2:
                        product = new MainCourseSauces(product);     // z sosami
                        break;
                    }
                }

                return(product);
            }
            else if (comboBoxMainDishes1.SelectedIndex > 6 && comboBoxMainDishes1.SelectedIndex <= 11) // jeśli wybrano głowne danie z indeksu od 7 do 11 to stwórz obiekt product
            {
                string name = comboBoxMainDishes1.SelectedItem.ToString();                             // przypisz nazwę obiektu (string) z comboBoxMainDishes1
                double cost;
                try
                {
                    cost = products[name];     // wybierz z kolekcji products odpowiedni produkt i przekaż jego wartość
                }
                catch (KeyNotFoundException)   // szukany klucz nie isnieje to przerwij działanie funkcji ("łapie" błąd)
                {
                    MessageBox.Show("Podane danie nie istnieje", "Wybierz danie",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Information); // wyświetl komunikat
                    return(null);
                }

                Product product = new DrinkSoup(name, cost); // stwórz obiekt product o nazwie (name) i cenie (cost)
                return(product);
            }
            else   // jeśli wybrano indeks powyżej 11 to wyświetl komunikat że podane danie nie istnieje
            {
                MessageBox.Show("Podane danie nie istnieje", "Wybierz danie",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
                return(null);
            }
        }