示例#1
0
 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);
 }