function it_returns_adjustments_recursively(AdjustmentInterface $itemAdjustment, AdjustmentInterface $unitAdjustment1, AdjustmentInterface $unitAdjustment2, Collection $unitAdjustments1, Collection $unitAdjustments2, OrderItemUnitInterface $unit1, OrderItemUnitInterface $unit2) { $unit1->getOrderItem()->willReturn($this); $unit1->getTotal()->willReturn(100); $unit1->getAdjustments(null)->willReturn($unitAdjustments1); $unitAdjustments1->toArray()->willReturn(array($unitAdjustment1)); $unit2->getOrderItem()->willReturn($this); $unit2->getTotal()->willReturn(100); $unit2->getAdjustments(null)->willReturn($unitAdjustments2); $unitAdjustments2->toArray()->willReturn(array($unitAdjustment2)); $this->addUnit($unit1); $this->addUnit($unit2); $itemAdjustment->setAdjustable($this)->shouldBeCalled(); $itemAdjustment->isNeutral()->willReturn(true); $this->addAdjustment($itemAdjustment); $this->getAdjustmentsRecursively()->shouldReturn(array($itemAdjustment, $unitAdjustment1, $unitAdjustment2)); }
function it_returns_correct_adjustments_total_by_type_recursively(AdjustmentInterface $adjustment1, AdjustmentInterface $promotionAdjustment, AdjustmentInterface $taxAdjustment1, AdjustmentInterface $taxAdjustment2, OrderItemUnitInterface $orderItemUnit1, OrderItemUnitInterface $orderItemUnit2) { $adjustment1->getType()->willReturn('tax'); $adjustment1->getAmount()->willReturn(200); $adjustment1->isNeutral()->willReturn(false); $adjustment1->setAdjustable($this)->shouldBeCalled(); $promotionAdjustment->getAmount()->willReturn(30); $promotionAdjustment->isNeutral()->willReturn(false); $taxAdjustment1->getAmount()->willReturn(150); $taxAdjustment1->isNeutral()->willReturn(false); $taxAdjustment2->getAmount()->willReturn(100); $taxAdjustment2->isNeutral()->willReturn(false); $orderItemUnit1->getOrderItem()->willReturn($this->getWrappedObject()); $orderItemUnit1->getTotal()->willReturn(500); $orderItemUnit1->getAdjustments('tax')->willReturn(new ArrayCollection([$taxAdjustment1->getWrappedObject()])); $orderItemUnit1->getAdjustments('promotion')->willReturn(new ArrayCollection([$promotionAdjustment->getWrappedObject()])); $orderItemUnit2->getOrderItem()->willReturn($this->getWrappedObject()); $orderItemUnit2->getTotal()->willReturn(300); $orderItemUnit2->getAdjustments('tax')->willReturn(new ArrayCollection([$taxAdjustment2->getWrappedObject()])); $orderItemUnit2->getAdjustments('promotion')->willReturn(new ArrayCollection()); $this->addAdjustment($adjustment1); $this->addUnit($orderItemUnit1); $this->addUnit($orderItemUnit2); $this->getAdjustmentsTotalRecursively('tax')->shouldReturn(450); $this->getAdjustmentsTotalRecursively('promotion')->shouldReturn(30); }