/**
  * @param \Praxigento\Odoo\Data\Odoo\Inventory\Product\Warehouse\Lot[] $lots
  * @param \Magento\CatalogInventory\Api\Data\StockItemInterface $stockItem
  */
 public function processLots($lots, $stockItem)
 {
     $qtyTotal = 0;
     $stockItemId = $stockItem->getItemId();
     foreach ($lots as $lot) {
         $qtyTotal += $this->_subLot->processLot($stockItemId, $lot);
     }
     /* update stock item qty */
     $stockItem->setQty($qtyTotal);
     $isInStock = $qtyTotal > 0;
     $stockItem->setIsInStock($isInStock);
     $this->_mageRepoStockItem->save($stockItem);
     /* cleanup extra lots */
     $this->_subLot->cleanupLots($stockItemId, $lots);
 }
 public function test_processLot_update()
 {
     /** === Test Data === */
     $STOCK_ITEM_ID = 32;
     $LOT_ID_O1 = 41;
     $LOT_QTY = 432;
     $LOT_ID_M1 = 21;
     $LOT = new \Praxigento\Odoo\Data\Odoo\Inventory\Product\Warehouse\Lot();
     $QTY_ITEM = 'some item';
     /** === Setup Mocks === */
     // $lotIdOdoo = $lot->getId();
     $LOT->setId($LOT_ID_O1);
     // $qty = $lot->getQuantity();
     $LOT->setQuantity($LOT_QTY);
     // $lotIdMage = $this->_repoAggLot->getMageIdByOdooId($lotIdOdoo);
     $this->mRepoAggLot->shouldReceive('getMageIdByOdooId')->once()->andReturn($LOT_ID_M1);
     // $qtyItem = $this->_repoWarehouseEntityQuantity->getById($pk);
     $this->mRepoWrhsEntityQty->shouldReceive('getById')->once()->andReturn($QTY_ITEM);
     // $this->_repoWarehouseEntityQuantity->updateById($bind, $pk);
     $this->mRepoWrhsEntityQty->shouldReceive('updateById')->once()->andReturn();
     /** === Call and asserts  === */
     $this->obj->processLot($STOCK_ITEM_ID, $LOT);
 }