Exemplo n.º 1
0
 function it_creates_only_missing_inventory_units_via_the_factory($orderItemUnitFactory, OrderItemInterface $item, ProductVariantInterface $variant, OrderItemUnitInterface $unit1, OrderItemUnitInterface $unit2)
 {
     $item->getUnits()->shouldBeCalled()->willReturn(new ArrayCollection(array($unit1)));
     $unit1->getStockable()->willReturn($variant);
     $unit2->getStockable()->willReturn($variant);
     $item->getVariant()->willReturn($variant);
     $item->getQuantity()->willReturn(2);
     $item->getUnits()->willReturn(new ArrayCollection());
     $orderItemUnitFactory->createNew()->willReturn($unit2);
     $unit1->setInventoryState(InventoryUnitInterface::STATE_CHECKOUT)->shouldNotBeCalled();
     $unit2->setInventoryState(InventoryUnitInterface::STATE_CHECKOUT)->shouldBeCalled();
     $item->addUnit($unit1)->shouldNotBeCalled();
     $item->addUnit($unit2)->shouldBeCalled();
     $this->processInventoryUnits($item);
 }
 function it_does_nothing_if_target_quantity_is_below_0($orderItemUnitFactory, OrderItemInterface $orderItem)
 {
     $orderItem->getQuantity()->willReturn(3);
     $orderItemUnitFactory->createForItem(Argument::any())->shouldNotBeCalled();
     $orderItem->addUnit(Argument::any())->shouldNotBeCalled();
     $orderItem->removeUnit(Argument::any())->shouldNotBeCalled();
     $this->modify($orderItem, -10);
 }
Exemplo n.º 3
0
 function let(OrderItemInterface $orderItem)
 {
     $orderItem->getUnitPrice()->willReturn(1000);
     $orderItem->addUnit(Argument::type(OrderItemUnitInterface::class))->shouldBeCalled();
     $this->beConstructedWith($orderItem);
 }
Exemplo n.º 4
0
 /**
  * @param OrderItemInterface $item
  * @param int $quantity
  * @param string $state
  */
 protected function createInventoryUnits(OrderItemInterface $item, $quantity, $state = InventoryUnitInterface::STATE_CHECKOUT)
 {
     if ($quantity < 1) {
         throw new \InvalidArgumentException('Quantity of units must be greater than 0.');
     }
     for ($i = 0; $i < $quantity; $i++) {
         $unit = $this->orderItemUnitFactory->createNew();
         $unit->setInventoryState($state);
         $item->addUnit($unit);
     }
 }