public function addDiscount(DiscountItem $discount) { $productName = $discount->getDiscountProductName(); if (false === isset($this->discounts[$productName])) { $this->discounts[$productName] = array(); } $this->discounts[$productName][] = $discount; }
/** * @dataProvider dataForAppleOfferTest */ public function testApplePriceDiscount($expectedPrice, $quantity) { $discount = new DiscountItem(DiscountItem::DISCOUNT_TYPE_PRICE_ABOVE_QUANTITY, 'Apple', 5, 7); // 7 = 32 -25 $this->assertEquals(DiscountItem::DISCOUNT_TYPE_PRICE_ABOVE_QUANTITY, $discount->getType()); $apples = new CartItem(new CartProduct('Apple', 32, 'kg'), $quantity); $discountedPrice = $discount->getPrice($apples); $this->assertEquals($expectedPrice, $discountedPrice); }