function it_merges_equal_items(OrderItemInterface $item1, OrderItemInterface $item2) { $item1->setOrder($this)->shouldBeCalled(); $item1->equals($item2)->willReturn(true); $item2->equals($item1)->willReturn(true); $item1->merge($item2, false)->willReturn($this)->shouldBeCalled(); $this->addItem($item1)->addItem($item2); $this->countItems()->shouldReturn(1); }
function it_calculates_correct_total_when_adjustment_is_bigger_than_cost(OrderItemInterface $item, AdjustmentInterface $adjustment) { $item->getTotal()->willReturn(45000); $item->equals(Argument::any())->willReturn(false); $item->setOrder($this)->shouldBeCalled(); $adjustment->isNeutral()->willReturn(false); $adjustment->getAmount()->willReturn(-100000); $adjustment->setAdjustable($this)->shouldBeCalled(); $this->addItem($item); $this->addAdjustment($adjustment); $this->getTotal()->shouldReturn(0); }