public function test_registerSaleItemQty() { /** === Test Data === */ $SALE_ITEM_ID = 21; $TOTAL = 23; $LOTS_DATA = [[Alias::AS_STOCK_ITEM_ID => 1, Alias::AS_LOT_ID => 2, Alias::AS_QTY => 3], [Alias::AS_STOCK_ITEM_ID => 1, Alias::AS_LOT_ID => 4, Alias::AS_QTY => 300]]; /** === Setup Mocks === */ $mDef = $this->_mockTransactionDefinition(); $this->mManTrans->shouldReceive('begin')->once()->andReturn($mDef); /** * First loop */ // $this->_repoQtySale->create($qtySaleData); $this->mRepoQtySale->shouldReceive('create')->once(); // $this->_repoQty->deleteById($qtyPk); $this->mRepoQty->shouldReceive('deleteById')->once(); /** * Second loop */ // $this->_repoQtySale->create($qtySaleData); $this->mRepoQtySale->shouldReceive('create')->once(); // $this->_repoQty->updateById($qtyPk, $qtyUpdateData); $this->mRepoQty->shouldReceive('updateById')->once(); /** * Close transaction. */ // $this->_manTrans->commit($def); $this->mManTrans->shouldReceive('commit')->once(); // $this->_manTrans->end($def); $this->mManTrans->shouldReceive('end')->once(); /** === Call and asserts === */ $this->obj->registerSaleItemQty($SALE_ITEM_ID, $TOTAL, $LOTS_DATA); }