Ejemplo n.º 1
0
 /** @inheritdoc */
 public function create($data)
 {
     /** @var  $result AggWarehouse */
     $result = null;
     $def = $this->_manTrans->begin();
     try {
         $wrhsData = $this->_repoWrhsAggWarehouse->create($data);
         /* create odoo related entries */
         $bind = [EntityWarehouse::ATTR_MAGE_REF => $wrhsData->getId(), EntityWarehouse::ATTR_ODOO_REF => $data->getOdooId()];
         $this->_repoEntityWarehouse->create($bind);
         $this->_manTrans->commit($def);
         /* compose result from warehouse module's data and odoo module's data */
         $result = $this->_manObj->create(AggWarehouse::class);
         $result->setData($wrhsData);
         $result->setOdooId($data->getOdooId());
     } finally {
         $this->_manTrans->end($def);
     }
     return $result;
 }
 /**
  * @SuppressWarnings(PHPMD.ShortVariable)
  */
 public function test_create_noStockId()
 {
     /** === Test Data === */
     $id = 32;
     $data = new AggWarehouse([AggWarehouse::AS_CODE => 'code', AggWarehouse::AS_WEBSITE_ID => 'website_id', AggWarehouse::AS_CURRENCY => 'currency', AggWarehouse::AS_NOTE => 'note']);
     /** === Setup Mocks === */
     // $def = $this->_manTrans->begin();
     $mDef = $this->_mock(\Praxigento\Core\Transaction\Database\IDefinition::class);
     $this->mManTrans->shouldReceive('begin')->once()->andReturn($mDef);
     // $id = $this->_repoBasic->addEntity($tbl, $bind);
     $this->mRepoGeneric->shouldReceive('addEntity')->once()->andReturn($id);
     // $this->_repoBasic->addEntity($tbl, $bind);
     $this->mRepoGeneric->shouldReceive('addEntity')->once();
     // $this->_manTrans->commit($def);
     $this->mManTrans->shouldReceive('commit')->once()->with($mDef);
     // $this->_manTrans->end($def);
     $this->mManTrans->shouldReceive('end')->once()->with($mDef);
     /** === Call and asserts  === */
     $res = $this->obj->create($data);
     $this->assertInstanceOf(AggWarehouse::class, $res);
     $this->assertEquals($id, $res->getId());
 }