Beispiel #1
0
 /**
  * @param \Thelia\Core\Event\Order\OrderEvent $event
  */
 public function testFreePostage(OrderEvent $event)
 {
     $order = $event->getOrder();
     if ($this->couponManager->isCouponRemovingPostage($order)) {
         $order->setPostage(0);
         $event->setOrder($order);
         $event->stopPropagation();
     }
 }
Beispiel #2
0
 /**
  * @covers Thelia\Coupon\CouponManager::getDiscount
  * @covers Thelia\Coupon\CouponManager::isCouponRemovingPostage
  * @covers Thelia\Coupon\CouponManager::sortCoupons
  * @covers Thelia\Coupon\CouponManager::getEffect
  */
 public function testGetDiscountCumulativeRemovingPostage()
 {
     $stubFacade = $this->generateFacadeStub();
     $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->setCode('XMAS')->setIsRemovingPostage(false)->setAmount(21.0);
     $coupon1 = $couponFactory->buildCouponFromModel($model1);
     $model2 = $this->generateCouponModel($stubFacade, $conditionFactory);
     $model2->setCode('XMAS2')->setIsRemovingPostage(true)->setAmount(21.5);
     $coupon2 = $couponFactory->buildCouponFromModel($model2);
     $stubFacade->expects($this->any())->method('getCurrentCoupons')->will($this->returnValue(array($coupon1, $coupon2)));
     $stubFacade->expects($this->any())->method('getCheckoutPostagePrice')->will($this->returnValue(8.300000000000001));
     $stubFacade->expects($this->any())->method('getCartTotalTaxPrice')->will($this->returnValue(122.53));
     $couponManager = new CouponManager($stubContainer);
     $couponManager->addAvailableCoupon($coupon1);
     $couponManager->addAvailableCoupon($coupon2);
     $actual = $couponManager->getDiscount();
     $expected = 21 + 21.5;
     $order = new Order();
     $order->setChoosenDeliveryAddress(1);
     $order->setDeliveryModuleId(1);
     $this->assertEquals($expected, $actual);
     $this->assertTrue($couponManager->isCouponRemovingPostage($order));
 }