Exemplo n.º 1
0
 function it_removes_adjustments_recursively_by_type_properly(AdjustmentInterface $orderPromotionAdjustment, AdjustmentInterface $orderTaxAdjustment, OrderItemInterface $item)
 {
     $orderPromotionAdjustment->getType()->willReturn('promotion');
     $orderPromotionAdjustment->isNeutral()->willReturn(true);
     $orderPromotionAdjustment->setAdjustable($this)->shouldBeCalled();
     $orderPromotionAdjustment->isLocked()->willReturn(false);
     $orderTaxAdjustment->getType()->willReturn('tax');
     $orderTaxAdjustment->isNeutral()->willReturn(true);
     $orderTaxAdjustment->setAdjustable($this)->shouldBeCalled();
     $orderTaxAdjustment->isLocked()->willReturn(false);
     $this->addAdjustment($orderPromotionAdjustment);
     $this->addAdjustment($orderTaxAdjustment);
     $this->addItem($item);
     $item->removeAdjustmentsRecursively('tax')->shouldBeCalled();
     $orderTaxAdjustment->setAdjustable(null)->shouldBeCalled();
     $this->removeAdjustmentsRecursively('tax');
     $this->hasAdjustment($orderPromotionAdjustment)->shouldReturn(true);
     $this->hasAdjustment($orderTaxAdjustment)->shouldReturn(false);
 }
Exemplo n.º 2
0
 function it_returns_correct_adjustments_total_by_type_recursively(AdjustmentInterface $adjustment1, OrderItemUnitInterface $orderItemUnit1, OrderItemUnitInterface $orderItemUnit2)
 {
     $adjustment1->getType()->willReturn('tax');
     $adjustment1->getAmount()->willReturn(200);
     $adjustment1->isNeutral()->willReturn(false);
     $adjustment1->setAdjustable($this)->shouldBeCalled();
     $orderItemUnit1->getOrderItem()->willReturn($this->getWrappedObject());
     $orderItemUnit1->getTotal()->willReturn(500);
     $orderItemUnit1->getAdjustmentsTotal('tax')->willReturn(150);
     $orderItemUnit1->getAdjustmentsTotal('promotion')->willReturn(30);
     $orderItemUnit2->getOrderItem()->willReturn($this->getWrappedObject());
     $orderItemUnit2->getTotal()->willReturn(300);
     $orderItemUnit2->getAdjustmentsTotal('tax')->willReturn(100);
     $orderItemUnit2->getAdjustmentsTotal('promotion')->willReturn(0);
     $this->addAdjustment($adjustment1);
     $this->addUnit($orderItemUnit1);
     $this->addUnit($orderItemUnit2);
     $this->getAdjustmentsTotalRecursively('tax')->shouldReturn(450);
     $this->getAdjustmentsTotalRecursively('promotion')->shouldReturn(30);
 }