Example #1
0
 public function testCreate()
 {
     $productQuantityDiscount = $this->dummyData->getProductQuantityDiscount();
     $catalogPromotion = $this->dummyData->getCatalogPromotion();
     $this->pricing->setProductQuantityDiscounts([$productQuantityDiscount]);
     $this->pricing->setCatalogPromotions([$catalogPromotion]);
     $this->assertTrue($this->pricing->getPrice(new Product(), 1) instanceof Price);
     $this->assertTrue($this->pricing->getDate() instanceof DateTime);
     $this->assertTrue($this->pricing->getProductQuantityDiscounts()[0] instanceof ProductQuantityDiscount);
     $this->assertTrue($this->pricing->getCatalogPromotions()[0] instanceof CatalogPromotion);
 }
 public function testGetPriceWithCatalogPromotion()
 {
     $catalogPromotion = new CatalogPromotion();
     $catalogPromotion->setName('20% Off');
     $catalogPromotion->setType(PromotionType::percent());
     $catalogPromotion->setValue(20);
     $this->pricing->setCatalogPromotions([$catalogPromotion]);
     $product = new Product();
     $product->setUnitPrice(1500);
     $expectedPrice = new Price();
     $expectedPrice->unitPrice = 1200;
     $expectedPrice->origUnitPrice = 1500;
     $expectedPrice->addCatalogPromotion($catalogPromotion);
     $expectedPrice->quantityPrice = 1200;
     $expectedPrice->origQuantityPrice = 1500;
     $this->assertEquals($expectedPrice, $this->pricingCalculator->getPrice($product, 1));
 }
Example #3
0
 /**
  * @param CatalogPromotion[]|null $catalogPromotions
  * @param ProductQuantityDiscount[]|null $productQuantityDiscounts
  * @return Pricing
  */
 public function getPricing(array $catalogPromotions = null, array $productQuantityDiscounts = null)
 {
     if ($catalogPromotions === null) {
         $catalogPromotions = [$this->getCatalogPromotion()];
     }
     if ($productQuantityDiscounts === null) {
         $productQuantityDiscounts = [$this->getProductQuantityDiscount()];
     }
     $pricing = new Pricing();
     $pricing->setCatalogPromotions($catalogPromotions);
     $pricing->setProductQuantityDiscounts($productQuantityDiscounts);
     return $pricing;
 }