Ejemplo n.º 1
0
    public void FindAllByPrice_On100000ElementsWithRandomPrice_ShouldWorkFast()
    {
        // Arrange
        IProductStock  stock    = new Instock();
        const int      count    = 100_000;
        List <Product> expected = new List <Product>();

        Random random = new Random();

        for (int i = 0; i < count; i++)
        {
            int     price = random.Next(5, 30);
            Product p     = new Product(i.ToString(), price, 25);
            if (price == 21)
            {
                expected.Add(p);
            }
            stock.Add(p);
        }

        Stopwatch sw = Stopwatch.StartNew();

        // Act
        IEnumerable <Product> FindAllByPrice() => stock.FindAllByPrice(21);

        // Assert
        CollectionAssert.AreEqual(expected, FindAllByPrice());
        sw.Stop();
        Assert.Less(sw.ElapsedMilliseconds, 25);
    }
Ejemplo n.º 2
0
    public void FindByPrice_On_ExistingItems_ShouldReturn_Correct_Enumeration()
    {
        //Arrange
        IProductStock  stock    = new Instock();
        Product        product1 = new Product("SalamShpekov", 2.65, 50);
        Product        product2 = new Product("BekonNov", 2.65, 43);
        Product        product3 = new Product("MayonezaNiskomaslena", 1.30, 13);
        Product        product4 = new Product("Ketchup", 2.65, 73);
        Product        product5 = new Product("Jelqzo", 0.70, 20);
        Product        product6 = new Product("Belina", .75, 50);
        Product        product7 = new Product("Sirene", .77, 50);
        List <Product> expected = new List <Product>()
        {
            product1, product2, product4
        };

        //Act
        stock.Add(product1);
        stock.Add(product2);
        stock.Add(product3);
        stock.Add(product4);
        stock.Add(product5);
        stock.Add(product6);
        stock.Add(product7);

        //Assert
        List <Product> actual = stock.FindAllByPrice(2.65).ToList();

        CollectionAssert.AreEqual(expected, actual);
    }
Ejemplo n.º 3
0
    static void Main(string[] args)
    {
        Instock products = new Instock();

        var pr1 = new Product("salam", 10, 2);
        var pr2 = new Product("masla", 10, 1);
        var pr3 = new Product("bob", 10, 3);

        products.Add(pr1);
        products.Add(pr2);
        products.Add(pr3);

        var res = products.FindAllByPrice(10);

        System.Console.WriteLine(   );
    }
Ejemplo n.º 4
0
    public void FindByPrice_UnderFloatingPoint_PrecisionSurcumstances_ShouldNotFail()
    {
        //Arrange
        IProductStock stock    = new Instock();
        Product       product1 = new Product("SalamShpekov", 3.50, 50);
        Product       product2 = new Product("BekonNov", 2.65, 43);
        Product       product3 = new Product("MayonezaNiskomaslena", 1.30, 13);

        //Act
        stock.Add(product1);
        stock.Add(product2);
        stock.Add(product3);

        //Assert
        List <Product> actual = stock.FindAllByPrice(1.2999999).ToList();

        CollectionAssert.AreEqual(new List <Product>(), actual);
    }
Ejemplo n.º 5
0
    public void FindByPrice_On_Non_ExistantPrice_ShouldReturn_Empty_Enumeration()
    {
        //Arrange
        IProductStock stock    = new Instock();
        Product       product1 = new Product("SalamShpekov", 3.50, 50);
        Product       product2 = new Product("BekonNov", 2.65, 43);
        Product       product3 = new Product("MayonezaNiskomaslena", 1.30, 13);

        //Act
        stock.Add(product1);
        stock.Add(product2);
        stock.Add(product3);

        //Assert
        List <Product> actual = stock.FindAllByPrice(0.70).ToList();

        CollectionAssert.AreEqual(new List <Product>(), actual);
    }
Ejemplo n.º 6
0
    public static void Main()
    {
        var stock = new Instock();

        var productA = new Product("A", 50, 100);
        var productC = new Product("C", 100, 10);
        var productB = new Product("B", 50, 3);

        stock.Add(productA);
        stock.Add(productC);
        stock.Add(productB);

        var contains = stock.Contains(productC);
        var find     = stock.Find(0);

        stock.ChangeQuantity("C", -10);
        var byLabel = stock.FindByLabel("C");
        var firstCountByAscLabel = stock.FindFirstByAlphabeticalOrder(2);

        var byPriceRange       = stock.FindAllInRange(30, 500);
        var byPrice            = stock.FindAllByPrice(50);
        var firstMostExpensive = stock.FindFirstMostExpensiveProducts(2);
    }