public void CalculateDiscount_ReturnZero_WithEmptyCrat()
        {
            //Fixture setup
            var shoppingCart = GetShoppingCartWithNoItems();
            calculateDiscount calDiscount = new calculateDiscount(shoppingCart);
            //Exercise system
            var actual = calDiscount.CalculateDiscount();

            //verify outcome
            Assert.AreEqual(actual, 0);
        }
        public void CalculatDiscount_ReturnCorrectResult_calculatedPerType_WithOneItem(double discount, int quantity, double expected)
        {
            //Fixture setup
            var shoppingCart = GetShoppingCartWithOneItem(discount, quantity);

            shoppingCart.AddDiscount(new discount(shopping_cart.DiscountType.perType, 0.0));
            calculateDiscount calDiscount = new calculateDiscount(shoppingCart);
            //Exercise system
            var actual = calDiscount.CalculateDiscount();

            //verify outcome
            Assert.AreEqual(actual, expected);
        }
        public void CalculateDiscount_ReturnCorrectResult_calculatedPerItem_WithManyItems(double[] discounts, int[] quantities, double expected)
        {
            //Fixture setup
            var shoppingCart = GetShoppingCartWithManyItems(discounts, quantities);

            shoppingCart.AddDiscount(new discount(shopping_cart.DiscountType.perItem, 0.0));
            calculateDiscount calDiscount = new calculateDiscount(shoppingCart);
            //Exercise system
            var actual = calDiscount.CalculateDiscount();

            //verify outcome
            Assert.AreEqual(actual, expected);
        }