Ejemplo n.º 1
0
        public void SumProductTest()
        {
            Product prod1  = new Product(1, "potate");
            Product prod2  = new Product(2, "cabidge");
            Product prod3  = new Product(3, "pencil");
            Product prod4  = new Product(4, "pen");
            Product prod5  = new Product(5, "chair");
            Product prod6  = new Product(6, "book");
            Product prod7  = new Product(7, "paper");
            Product prod8  = new Product(8, "fish");
            Product prod9  = new Product(9, "met");
            Product prod10 = new Product(10, "bed");

            Shop.Shop shop1 = new Shop.Shop(1, "Lenta", "Park Victory");
            shop1.addProduct(prod1, 50, 1);
            shop1.addProduct(prod3, 100, 1);
            shop1.addProduct(prod5, 50, 2);

            var actual = shop1.SumProduct(100);
            Dictionary <string, int> expected = new Dictionary <string, int>();

            expected.Add("potate", 50);
            expected.Add("pencil", 100);
            expected.Add("chair", 50);
            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 2
0
        public void CheapProducttest()
        {
            Shop.Shop shop1 = new Shop.Shop(1, "Lenta", "Park Victory");
            Shop.Shop shop2 = new Shop.Shop(2, "Diksi", "40 year pobed");
            Shop.Shop shop3 = new Shop.Shop(3, "pytcherochka", "strret mira");

            Product prod1  = new Product(1, "potate");
            Product prod2  = new Product(2, "cabidge");
            Product prod3  = new Product(3, "pencil");
            Product prod4  = new Product(4, "pen");
            Product prod5  = new Product(5, "chair");
            Product prod6  = new Product(6, "book");
            Product prod7  = new Product(7, "paper");
            Product prod8  = new Product(8, "fish");
            Product prod9  = new Product(9, "met");
            Product prod10 = new Product(10, "bed");

            shop1.addProduct(new Product(prod1), 50, 100);
            shop2.addProduct(new Product(prod1), 100, 65);
            shop3.addProduct(new Product(prod1), 10, 16);

            Trade trade = new Trade();

            trade.addShop(shop1);
            trade.addShop(shop2);
            trade.addShop(shop3);
            var actual      = trade.CheapProduct(prod1);
            var excexpected = "pytcherochka";

            Assert.AreEqual(excexpected, actual);
        }
Ejemplo n.º 3
0
        public void PurchasePossibleCheckAmountTest()
        {
            Product apple  = new Product("Яблоко");
            Product banana = new Product("Банан");
            Product milk   = new Product("Молоко");

            Shop.Shop shop1 = new Shop.Shop("Пятёрочка", "Хвостовая ул. д.239");
            shop1.AddProduct(apple, new ProductStatus(25, 1836));
            shop1.AddProduct(banana, new ProductStatus(34, 993));
            shop1.AddProduct(milk, new ProductStatus(67, 378));

            var lot = new ProductLot(new List <ProductRequest>
            {
                new ProductRequest(apple, new ProductStatus(45)),
                new ProductRequest(banana, new ProductStatus(103)),
                new ProductRequest(milk, new ProductStatus(15)),
            });

            shop1.BuyLotOfProducts(lot);
            var appleAmount = shop1.Products
                              .Where(x => x.Product.Id == apple.Id)
                              .Select(x => x.ProductStatus.Amount)
                              .FirstOrDefault();

            Assert.AreEqual(1791, appleAmount);
        }
Ejemplo n.º 4
0
        public void BuyProductsTest()
        {
            Product prod1  = new Product(1, "potate");
            Product prod2  = new Product(2, "cabidge");
            Product prod3  = new Product(3, "pencil");
            Product prod4  = new Product(4, "pen");
            Product prod5  = new Product(5, "chair");
            Product prod6  = new Product(6, "book");
            Product prod7  = new Product(7, "paper");
            Product prod8  = new Product(8, "fish");
            Product prod9  = new Product(9, "met");
            Product prod10 = new Product(10, "bed");

            Shop.Shop shop1 = new Shop.Shop(1, "Lenta", "Park Victory");
            Shop.Shop shop2 = new Shop.Shop(2, "Diksi", "40 year pobed");
            Shop.Shop shop3 = new Shop.Shop(3, "pytcherochka", "strret mira");

            shop1.addProduct(new Product(prod1), 50, 100);
            shop1.addProduct(new Product(prod2), 10, 20);
            shop1.addProduct(new Product(prod3), 10, 20);

            List <Product> buy = new List <Product>();

            buy.Add(new Product(prod1, 2));
            buy.Add(new Product(prod2, 3));


            var actual   = (shop1.BuyProducts(buy));
            var expected = 260;

            Assert.AreEqual(expected, actual);
        }
        public void SomeProductsAvailableOnlyInOneShopTest()
        {
            Product apple  = new Product("Яблоко");
            Product banana = new Product("Банан");
            Product milk   = new Product("Молоко");

            Shop.Shop shop1 = new Shop.Shop("Пятёрочка", "Хвостовая ул. д.239");
            shop1.AddProduct(apple, new ProductStatus(25, 1836));
            shop1.AddProduct(banana, new ProductStatus(34, 993));

            Shop.Shop shop2 = new Shop.Shop("Перекрёсток", "Денежная ул. д.98");
            shop2.AddProduct(apple, new ProductStatus(30, 832));
            shop2.AddProduct(banana, new ProductStatus(41, 892));
            shop2.AddProduct(milk, new ProductStatus(478));

            Shop.Shop shop3 = new Shop.Shop("Дикси", "Лесной пр-кт д.9");
            shop3.AddProduct(apple, new ProductStatus(19, 1938));
            shop3.AddProduct(banana, new ProductStatus(41, 892));

            var shopList = new List <Shop.Shop> {
                shop1, shop2, shop3
            };
            ShopList shops = new ShopList(shopList);

            var lot = new ProductLot(new List <ProductRequest>
            {
                new ProductRequest(apple, new ProductStatus(10)),
                new ProductRequest(banana, new ProductStatus(10)),
                new ProductRequest(milk, new ProductStatus(10))
            });

            var shop = shops.GetShopWithLowestSumOnLot(lot);

            Assert.AreEqual("Перекрёсток", shop.Name);
        }
        public void SomeProductsNotAvailableTest()
        {
            Product apple  = new Product("Яблоко");
            Product banana = new Product("Банан");
            Product milk   = new Product("Молоко");

            Shop.Shop shop1 = new Shop.Shop("Пятёрочка", "Хвостовая ул. д.239");
            shop1.AddProduct(apple, new ProductStatus(25, 1836));
            shop1.AddProduct(banana, new ProductStatus(34, 993));

            Shop.Shop shop2 = new Shop.Shop("Перекрёсток", "Денежная ул. д.98");
            shop2.AddProduct(apple, new ProductStatus(30, 832));
            shop2.AddProduct(banana, new ProductStatus(41, 892));

            Shop.Shop shop3 = new Shop.Shop("Дикси", "Лесной пр-кт д.9");
            shop3.AddProduct(apple, new ProductStatus(19, 1938));
            shop3.AddProduct(banana, new ProductStatus(41, 892));

            var shopList = new List <Shop.Shop> {
                shop1, shop2, shop3
            };
            ShopList shops = new ShopList(shopList);

            var lot = new ProductLot(new List <ProductRequest>
            {
                new ProductRequest(apple, new ProductStatus(10)),
                new ProductRequest(banana, new ProductStatus(10)),
                new ProductRequest(milk, new ProductStatus(10))
            });

            var result = Assert.ThrowsException <ShopNotFoundException>(() => shops.GetShopWithLowestSumOnLot(lot));

            Assert.AreEqual("Shop was not found!", result.Message);
        }
Ejemplo n.º 7
0
        public void ProductNotAvailableTest()
        {
            Product apple       = new Product("Яблоко");
            Product banana      = new Product("Банан");
            Product bread       = new Product("Хлеб");
            Product milk        = new Product("Молоко");
            Product tomato      = new Product("Помидор");
            Product shampoo     = new Product("Шампунь");
            Product toiletPaper = new Product("Туалетная бумага");
            Product beer        = new Product("Пиво");
            Product pasta       = new Product("Макароны");
            Product redBull     = new Product("РедБулл");

            Product cucumber = new Product("Огурец");

            Shop.Shop shop1 = new Shop.Shop("Пятёрочка", "Хвостовая ул. д.239");
            shop1.AddProduct(apple, new ProductStatus(25, 1836));
            shop1.AddProduct(banana, new ProductStatus(34, 993));
            shop1.AddProduct(milk, new ProductStatus(67, 378));
            shop1.AddProduct(pasta, new ProductStatus(54, 392));
            shop1.AddProduct(beer, new ProductStatus(89, 666));
            shop1.AddProduct(toiletPaper, new ProductStatus(120, 426));

            Shop.Shop shop2 = new Shop.Shop("Перекрёсток", "Денежная ул. д.98");
            shop2.AddProduct(apple, new ProductStatus(30, 832));
            shop2.AddProduct(banana, new ProductStatus(41, 892));
            shop2.AddProduct(milk, new ProductStatus(65, 278));
            shop2.AddProduct(pasta, new ProductStatus(69, 2953));
            shop2.AddProduct(beer, new ProductStatus(47, 382));
            shop2.AddProduct(redBull, new ProductStatus(127, 284));
            shop2.AddProduct(bread, new ProductStatus(33, 1793));

            Shop.Shop shop3 = new Shop.Shop("Дикси", "Лесной пр-кт д.9");
            shop3.AddProduct(apple, new ProductStatus(19, 1938));
            shop3.AddProduct(banana, new ProductStatus(41, 892));
            shop3.AddProduct(milk, new ProductStatus(65, 278));
            shop3.AddProduct(pasta, new ProductStatus(69, 2953));
            shop3.AddProduct(shampoo, new ProductStatus(155, 329));
            shop3.AddProduct(tomato, new ProductStatus(25, 394));

            var shopList = new List <Shop.Shop> {
                shop1, shop2, shop3
            };
            ShopList shops = new ShopList(shopList);

            var result1 = Assert.ThrowsException <ShopNotFoundException>(() => shops.GetShopWithLowestPriceOn("P120"));
            var result2 = Assert.ThrowsException <ShopNotFoundException>(() => shops.GetShopWithLowestPriceOn(cucumber));

            Assert.AreEqual("Shop was not found!", result1.Message);
            Assert.AreEqual("Shop was not found!", result2.Message);
        }
Ejemplo n.º 8
0
        public void ProductsUnderSumNotExist()
        {
            Product apple       = new Product("Яблоко");
            Product banana      = new Product("Банан");
            Product milk        = new Product("Молоко");
            Product toiletPaper = new Product("Туалетная бумага");
            Product beer        = new Product("Пиво");
            Product pasta       = new Product("Макароны");

            Shop.Shop shop1 = new Shop.Shop("Пятёрочка", "Хвостовая ул. д.239");
            shop1.AddProduct(apple, new ProductStatus(25, 1836));
            shop1.AddProduct(banana, new ProductStatus(34, 993));
            shop1.AddProduct(milk, new ProductStatus(67, 378));
            shop1.AddProduct(pasta, new ProductStatus(54, 392));
            shop1.AddProduct(beer, new ProductStatus(89, 666));
            shop1.AddProduct(toiletPaper, new ProductStatus(120, 426));

            Assert.ThrowsException <ImpossibleToBuyException>(() => shop1.GetProductsOnSum(1));
        }
Ejemplo n.º 9
0
        public void PurchasePossibleCheckSumTest()
        {
            Product apple  = new Product("Яблоко");
            Product banana = new Product("Банан");
            Product milk   = new Product("Молоко");

            Shop.Shop shop1 = new Shop.Shop("Пятёрочка", "Хвостовая ул. д.239");
            shop1.AddProduct(apple, new ProductStatus(25, 1836));
            shop1.AddProduct(banana, new ProductStatus(34, 993));
            shop1.AddProduct(milk, new ProductStatus(67, 378));

            var lot = new ProductLot(new List <ProductRequest>
            {
                new ProductRequest(apple, new ProductStatus(45)),
                new ProductRequest(banana, new ProductStatus(103)),
                new ProductRequest(milk, new ProductStatus(15)),
            });

            var sum = shop1.BuyLotOfProducts(lot);

            Assert.AreEqual(5632.0m, sum);
        }
Ejemplo n.º 10
0
        public void PurchaseNotPossibleTest()
        {
            Product apple  = new Product("Яблоко");
            Product banana = new Product("Банан");
            Product milk   = new Product("Молоко");

            Shop.Shop shop1 = new Shop.Shop("Пятёрочка", "Хвостовая ул. д.239");
            shop1.AddProduct(apple, new ProductStatus(25, 1836));
            shop1.AddProduct(banana, new ProductStatus(34, 993));
            shop1.AddProduct(milk, new ProductStatus(67, 378));

            var lot = new ProductLot(new List <ProductRequest>
            {
                new ProductRequest(apple, new ProductStatus(45000)),
                new ProductRequest(banana, new ProductStatus(103)),
                new ProductRequest(milk, new ProductStatus(15)),
            });

            var result = Assert.ThrowsException <ImpossibleToBuyLotException>(() => shop1.BuyLotOfProducts(lot));

            Assert.AreEqual("Impossible to buy this lot!", result.Message);
        }
Ejemplo n.º 11
0
 public TradeData(Shop instance)
 {
     main = instance;
     updateTradeData();
     updateOfferData();
 }
Ejemplo n.º 12
0
 public ShopData(Shop instance)
 {
     main = instance;
     updateShopData();
 }