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); }
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); }