function it_removes_units_if_target_quantity_is_greater_than_current(OrderItemInterface $orderItem, OrderItemUnitInterface $unit1, OrderItemUnitInterface $unit2, OrderItemUnitInterface $unit3, OrderItemUnitInterface $unit4) { $orderItem->getQuantity()->willReturn(4); $orderItem->getUnits()->willReturn([$unit1, $unit2, $unit3, $unit4]); $orderItem->removeUnit($unit1)->shouldBeCalled(); $this->modify($orderItem, 3); }
/** * @param OrderItemInterface $orderItem * @param int $decreaseBy */ private function decreaseUnitsNumber(OrderItemInterface $orderItem, $decreaseBy) { foreach ($orderItem->getUnits() as $unit) { if (0 >= $decreaseBy--) { break; } $orderItem->removeUnit($unit); } }
function it_removes_units_if_target_quantity_is_greater_than_current(Collection $orderItemUnits, \Iterator $iterator, OrderItemInterface $orderItem, OrderItemUnitInterface $unit1, OrderItemUnitInterface $unit2, OrderItemUnitInterface $unit3, OrderItemUnitInterface $unit4) { $orderItem->getQuantity()->willReturn(4); $orderItem->getUnits()->willReturn($orderItemUnits); $orderItemUnits->count()->willReturn(4); $orderItemUnits->getIterator()->willReturn($iterator); $iterator->rewind()->shouldBeCalled(); $iterator->valid()->willReturn(true, true, true, true, false); $iterator->current()->willReturn($unit1, $unit2, $unit3, $unit4); $iterator->next()->shouldBeCalled(); $orderItem->removeUnit($unit1)->shouldBeCalled(); $this->modify($orderItem, 3); }