Пример #1
0
        public void TestSupplyTheSame()
        {
            const int n         = 100;
            Warehouse warehouse = new Warehouse();

            // Cоздаю тестовые порции, т.к. поставка порция + дата.
            List <Portion> testPortions = new List <Portion>();

            for (int i = 0; i < n; i++)
            {
                // Cоздаю продукт, который является частью класса порция.
                Product new_product = new Product()
                {
                    Id       = 12345678,
                    Name     = $"Product 34",
                    Price    = 228,
                    Unit     = "kg",
                    DateTime = DateTime.Now,
                };

                // После этого создаю саму порцию.
                testPortions.Add(new Portion()
                {
                    Product = new_product,
                    Amount  = 5
                });
            }
            warehouse.AcountingSupply(new PurchaseInvoice(testPortions));
            Assert.AreEqual("Product 34", warehouse.Products[0].Name);
            Assert.AreEqual(500, warehouse.Products[0].Amount);
        }
Пример #2
0
 // Действие при нажатии на кнопку confirmButton.
 private void confirmButton_Click(object sender, EventArgs e)
 {
     try
     {
         if (tempProducts.Count == 0)
         {
             throw new SupplyException("No products in supply");
         }
         List <Portion> tempPortions = new List <Portion>();
         foreach (Product product in tempProducts)
         {
             product.DateTime = DateTime.Now;
             tempPortions.Add(new Portion()
             {
                 Product = product,
                 Amount  = product.Amount,
             });
         }
         warehouse.AcountingSupply(new PurchaseInvoice(tempPortions));
         productBindingSource.ResetBindings(false);
         this.Close();
     }
     catch (SupplyException ex)
     {
         MessageBox.Show(ex.Message, "Exception");
     }
 }
Пример #3
0
        public void TestAdd()
        {
            // Продукция.
            const int n         = 100;
            Warehouse warehouse = new Warehouse();

            // Cоздаю тестовые порции, т.к. поставка порция + дата.
            List <Portion> testPortions = new List <Portion>();

            for (int i = 0; i < n; i++)
            {
                // Cоздаю продукт, который является частью класса порция.
                Product newProduct = new Product()
                {
                    Id       = i,
                    Name     = $"Product{i}",
                    Price    = i * 10,
                    Unit     = "kg",
                    DateTime = DateTime.Now
                };

                // После этого создаю саму порцию.
                testPortions.Add(new Portion()
                {
                    Product = newProduct,
                    Amount  = (i + 3) * 2
                });
            }
            warehouse.AcountingSupply(new PurchaseInvoice(testPortions));

            // Создаем пользователя. Заходим в аккаунт.
            warehouse.RegistrationCustomer(new Customer()
            {
                Login    = $"Customer",
                Password = "******",
                Adress   = "saltovskaya 33"
            });
            warehouse.AuthenticationCustomer(new Customer()
            {
                Login    = "******",
                Password = "******"
            });

            Assert.AreEqual("Customer", ((Customer)warehouse.UserNow).Login);

            // Само тестирование.

            for (int i = 0; i < 4; ++i)
            {
                warehouse.AddBasket(warehouse.Products[i], (i * 1.1));
            }

            Assert.AreEqual(warehouse.Products[1], ((Customer)warehouse.UserNow).Basket[1].Product);
            Assert.AreEqual((3 * 1.1), ((Customer)warehouse.UserNow).Basket[3].Amount);
        }
Пример #4
0
        public void TestSupplyLoadSave()
        {
            const int n         = 100;
            Warehouse warehouse = new Warehouse();

            // Cоздаю тестовые порции, т.к. поставка порция + дата.
            List <Portion> testPortions = new List <Portion>();

            for (int i = 0; i < n; i++)
            {
                // Cоздаю продукт, который является частью класса порция.
                Product newProduct = new Product()
                {
                    Id       = i,
                    Name     = $"Product{i}",
                    Price    = i * 10,
                    Unit     = "kg",
                    DateTime = DateTime.Now
                };

                // После этого создаю саму порцию.
                testPortions.Add(new Portion()
                {
                    Product = newProduct,
                    Amount  = (i + 3) * 2
                });
            }
            warehouse.AcountingSupply(new PurchaseInvoice(testPortions));
            Assert.AreEqual("Product0", warehouse.Products[0].Name);
            Assert.AreEqual("Product99", warehouse.Products[99].Name);
            Assert.AreEqual("Product22", warehouse.Products[22].Name);
            Assert.AreEqual(8, warehouse.Products[8].Id);
            Assert.AreEqual("kg", warehouse.Products[84].Unit);
            Assert.AreEqual(80, warehouse.Products[8].Price);
            Assert.IsNotNull(warehouse.PurchaseInvoices);

            // Проверяем в файле.
            warehouse.Save();
            warehouse.Load();

            Assert.AreEqual(8, warehouse.Products[8].Id);
            Assert.AreEqual("kg", warehouse.Products[84].Unit);
        }
Пример #5
0
        public void Order()
        {
            // Продукция.
            const int n         = 100;
            Warehouse warehouse = new Warehouse();

            // Cоздаю тестовые порции, т.к. поставка порция + дата.
            List <Portion> testPortions = new List <Portion>();

            for (int i = 0; i < n; i++)
            {
                // Cоздаю продукт, который является частью класса порция.
                Product newProduct = new Product()
                {
                    Id       = i,
                    Name     = $"Product{i}",
                    Price    = i * 10,
                    Unit     = "kg",
                    DateTime = DateTime.Now
                };

                // После этого создаю саму порцию.
                testPortions.Add(new Portion()
                {
                    Product = newProduct,
                    Amount  = (i + 10) * 2
                });
            }
            warehouse.AcountingSupply(new PurchaseInvoice(testPortions));

            // Создаем пользователя. Заходим в аккаунт.
            warehouse.RegistrationCustomer(new Customer()
            {
                Login    = $"Customer",
                Password = "******",
                Adress   = "saltovskaya 33"
            });
            warehouse.AuthenticationCustomer(new Customer()
            {
                Login    = "******",
                Password = "******"
            });

            for (int i = 0; i < 10; ++i)
            {
                warehouse.AddBasket(warehouse.Products[i], 10);
            }

            // Само тестирование.

            warehouse.CreateNewOrder();

            // Пустая корзина.
            Assert.AreEqual(0, ((Customer)warehouse.UserNow).Basket.Count);

            // Счет стоимости заказа. GetTotal()
            Assert.AreEqual(4500, warehouse.Orders[0].TotalPrice);

            // Содержание заказа.
            Assert.AreEqual(warehouse.Products[3], warehouse.Orders[0].Portions[3].Product);

            // Проверяем метод СonfirmationOfOrder(Order targetOrder) и DeleteOrder(Order order), который он вызывает
            warehouse.СonfirmationOfOrder(warehouse.Orders[0]);
            Assert.AreEqual(0, warehouse.Orders.Count);
            Assert.AreNotEqual(0, warehouse.SalesInvoices);
        }
Пример #6
0
        public void TestMethod1()
        {
            Warehouse warehouse = new Warehouse();
            const int n         = 100;
            const int m         = 7;
            const int k         = 4;

            // Products + PurchaseInvoices
            List <Portion> testPortions = new List <Portion>();

            for (int i = 0; i < n; i++)
            {
                // Cоздаю продукт, который является частью класса порция.
                Product newProduct = new Product()
                {
                    Id       = i,
                    Name     = $"Product{i}",
                    Price    = (i + 1) * (1 / 5 + 10),
                    Unit     = "kg",
                    DateTime = DateTime.Now + TimeSpan.FromDays(i)
                };

                // После этого создаю саму порцию.
                testPortions.Add(new Portion()
                {
                    Product = newProduct,
                    Amount  = (i + 3) * 13
                });
            }
            warehouse.AcountingSupply(new PurchaseInvoice(testPortions));

            // Customers.
            for (int i = 0; i < m; i++)
            {
                warehouse.RegistrationCustomer(new Customer()
                {
                    Login    = $"Customer{i}",
                    Password = "******" + i,
                    Adress   = "naukova " + (i + 3) * 7
                });
            }


            // Orders.
            for (int i = 0; i < k; ++i)
            {
                warehouse.AuthenticationCustomer(warehouse.Customers[i]);
                for (int g = 0; g < k; ++g)
                {
                    for (int j = i + 12; j < i + 16; ++j)
                    {
                        warehouse.AddBasket(warehouse.Products[j + g], 9 * (i + 3 + g));
                    }
                    warehouse.CreateNewOrder();
                }
            }

            // SalesInvoices + History for Сustomer.
            warehouse.СonfirmationOfOrder(warehouse.Orders[0]);
            warehouse.СonfirmationOfOrder(warehouse.Orders[2]);
            warehouse.СonfirmationOfOrder(warehouse.Orders[5]);
            warehouse.Save();
        }