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