Пример #1
0
 function it_returns_tax_of_all_units_and_both_neutral_and_non_neutral_tax_adjustments(OrderItemUnitInterface $orderItemUnit1, OrderItemUnitInterface $orderItemUnit2, AdjustmentInterface $nonNeutralTaxAdjustment, AdjustmentInterface $neutralTaxAdjustment)
 {
     $orderItemUnit1->getTotal()->willReturn(1200);
     $orderItemUnit1->getTaxTotal()->willReturn(200);
     $orderItemUnit1->getOrderItem()->willReturn($this);
     $orderItemUnit2->getTotal()->willReturn(1120);
     $orderItemUnit2->getTaxTotal()->willReturn(120);
     $orderItemUnit2->getOrderItem()->willReturn($this);
     $this->addUnit($orderItemUnit1);
     $this->addUnit($orderItemUnit2);
     $neutralTaxAdjustment->isNeutral()->willReturn(true);
     $neutralTaxAdjustment->getType()->willReturn(AdjustmentInterface::TAX_ADJUSTMENT);
     $neutralTaxAdjustment->getAmount()->willReturn(200);
     $nonNeutralTaxAdjustment->isNeutral()->willReturn(false);
     $nonNeutralTaxAdjustment->getType()->willReturn(AdjustmentInterface::TAX_ADJUSTMENT);
     $nonNeutralTaxAdjustment->getAmount()->willReturn(300);
     $neutralTaxAdjustment->setAdjustable($this)->shouldBeCalled();
     $nonNeutralTaxAdjustment->setAdjustable($this)->shouldBeCalled();
     $this->addAdjustment($neutralTaxAdjustment);
     $this->addAdjustment($nonNeutralTaxAdjustment);
     $this->getTaxTotal()->shouldReturn(820);
 }
Пример #2
0
 function it_does_not_include_shipping_promotion_adjustment_in_order_promotion_total(AdjustmentInterface $shippingPromotionAdjustment, OrderItemInterface $orderItem1)
 {
     $orderItem1->getTotal()->willReturn(500);
     $orderItem1->getAdjustmentsTotalRecursively(AdjustmentInterface::ORDER_PROMOTION_ADJUSTMENT)->willReturn(-400);
     $shippingPromotionAdjustment->getType()->willReturn(AdjustmentInterface::ORDER_PROMOTION_ADJUSTMENT);
     $shippingPromotionAdjustment->isNeutral()->willReturn(false);
     $shippingPromotionAdjustment->getAmount()->willReturn(-100);
     $orderItem1->setOrder($this)->shouldBeCalled();
     $this->addItem($orderItem1);
     $shippingPromotionAdjustment->setAdjustable($this)->shouldBeCalled();
     $this->addAdjustment($shippingPromotionAdjustment);
     $this->getOrderPromotionTotal()->shouldReturn(-400);
 }
Пример #3
0
 function it_returns_only_sum_of_neutral_and_non_neutral_tax_adjustments_as_tax_total(OrderItemInterface $orderItem, AdjustmentInterface $nonNeutralTaxAdjustment, AdjustmentInterface $neutralTaxAdjustment, AdjustmentInterface $notTaxAdjustment)
 {
     $neutralTaxAdjustment->isNeutral()->willReturn(true);
     $neutralTaxAdjustment->getType()->willReturn(AdjustmentInterface::TAX_ADJUSTMENT);
     $neutralTaxAdjustment->getAmount()->willReturn(200);
     $nonNeutralTaxAdjustment->isNeutral()->willReturn(false);
     $nonNeutralTaxAdjustment->getType()->willReturn(AdjustmentInterface::TAX_ADJUSTMENT);
     $nonNeutralTaxAdjustment->getAmount()->willReturn(300);
     $notTaxAdjustment->isNeutral()->willReturn(false);
     $notTaxAdjustment->getType()->willReturn(AdjustmentInterface::ORDER_PROMOTION_ADJUSTMENT);
     $notTaxAdjustment->getAmount()->willReturn(100);
     $orderItem->recalculateUnitsTotal()->shouldBeCalled();
     $neutralTaxAdjustment->setAdjustable($this)->shouldBeCalled();
     $nonNeutralTaxAdjustment->setAdjustable($this)->shouldBeCalled();
     $notTaxAdjustment->setAdjustable($this)->shouldBeCalled();
     $this->addAdjustment($neutralTaxAdjustment);
     $this->addAdjustment($nonNeutralTaxAdjustment);
     $this->addAdjustment($notTaxAdjustment);
     $this->getTaxTotal()->shouldReturn(500);
 }
Пример #4
0
 function it_returns_promotions_total_recursively(AdjustmentInterface $orderPromotionAdjustment, AdjustmentInterface $orderItemPromotionAdjustment, OrderItemInterface $orderItem)
 {
     $orderPromotionAdjustment->getAmount()->willReturn(10000);
     $orderItemPromotionAdjustment->getAmount()->willReturn(5000);
     $orderPromotionAdjustment->isNeutral()->willReturn(false);
     $orderItemPromotionAdjustment->isNeutral()->willReturn(false);
     $orderPromotionAdjustment->getType()->willReturn(AdjustmentInterface::ORDER_PROMOTION_ADJUSTMENT);
     $orderItemPromotionAdjustment->getType()->willReturn(AdjustmentInterface::ORDER_ITEM_PROMOTION_ADJUSTMENT);
     $orderPromotionAdjustment->setAdjustable($this)->shouldBeCalled();
     $orderItem->getAdjustmentsRecursively(AdjustmentInterface::ORDER_ITEM_PROMOTION_ADJUSTMENT)->willReturn([$orderItemPromotionAdjustment]);
     $orderItem->setOrder($this)->shouldBeCalled();
     $orderItem->getTotal()->willReturn(15000);
     $orderItem->getAdjustmentsRecursively(AdjustmentInterface::ORDER_PROMOTION_ADJUSTMENT)->willReturn([]);
     $this->addItem($orderItem);
     $this->addAdjustment($orderPromotionAdjustment);
     $this->getPromotionsTotalRecursively()->shouldReturn(15000);
 }