예제 #1
0
 /**
  * @covers Thelia\Coupon\CouponManager::getDiscount
  * @covers Thelia\Coupon\CouponManager::isCouponRemovingPostage
  * @covers Thelia\Coupon\CouponManager::sortCoupons
  * @covers Thelia\Coupon\CouponManager::getEffect
  */
 public function testGetDiscountGreaterThanCartAmount()
 {
     $stubFacade = $this->generateFacadeStub(12.25);
     $stubFacade->expects($this->any())->method('getCheckoutPostagePrice')->will($this->returnValue(8.300000000000001));
     $stubContainer = $this->getMock('\\Symfony\\Component\\DependencyInjection\\Container');
     $conditionFactory = new ConditionFactory($stubContainer);
     $conditions = new ConditionCollection();
     $stubConditionFactory = $this->getMockBuilder('\\Thelia\\Condition\\ConditionFactory')->disableOriginalConstructor()->getMock();
     $stubConditionFactory->expects($this->any())->method('unserializeConditionCollection')->will($this->returnValue($conditions));
     $couponManager = new RemoveXAmount($stubFacade);
     $stubContainer->expects($this->any())->method('get')->will($this->onConsecutiveCalls($stubFacade, $couponManager, $stubConditionFactory, clone $couponManager, $stubConditionFactory, $stubFacade));
     $stubContainer->expects($this->any())->method('has')->will($this->returnValue(true));
     $couponFactory = new CouponFactory($stubContainer);
     $model1 = $this->generateCouponModel($stubFacade, $conditionFactory);
     $model1->setAmount(21.0);
     $coupon1 = $couponFactory->buildCouponFromModel($model1);
     $model2 = $this->generateCouponModel($stubFacade, $conditionFactory);
     $model2->setCode('XMAS2')->setIsRemovingPostage(false)->setAmount(21.5)->setIsCumulative(false);
     $coupon2 = $couponFactory->buildCouponFromModel($model2);
     $stubFacade->expects($this->any())->method('getCurrentCoupons')->will($this->returnValue(array($coupon1, $coupon2)));
     $couponManager = new CouponManager($stubContainer);
     $couponManager->addAvailableCoupon($coupon1);
     $couponManager->addAvailableCoupon($coupon2);
     $actual = $couponManager->getDiscount();
     $expected = 12.25;
     $this->assertEquals($expected, $actual);
 }
예제 #2
0
파일: Coupon.php 프로젝트: alex63530/thelia
 public function updateOrderDiscount($event)
 {
     $discount = $this->couponManager->getDiscount();
     $this->request->getSession()->getCart()->setDiscount($discount)->save();
     $this->request->getSession()->getOrder()->setDiscount($discount);
 }
예제 #3
0
 public function updateOrderDiscount(Event $event, $eventName, EventDispatcherInterface $dispatcher)
 {
     $discount = $this->couponManager->getDiscount();
     $this->getSession()->getSessionCart($dispatcher)->setDiscount($discount)->save();
     $this->getSession()->getOrder()->setDiscount($discount);
 }