public function test_getForDependentCalc() { /** === Test Data === */ $CALC_TYPE_CODE_BASE = 1024; $CALC_TYPE_CODE_DEPEND = 512; /** === Mocks === */ $mLogger = $this->_mockLogger(); $mConn = $this->_mockConnection(); $mDba = $this->_mockDbAdapter(null, $mConn); $mToolbox = $this->_mockToolbox(); $mCallRepo = $this->_mockCallRepo(); $mSubDb = $this->_mockFor('Praxigento\\Bonus\\Hybrid\\Lib\\Service\\Period\\Sub\\Db'); $mSubWriteOff = $this->_mockFor('\\Praxigento\\Bonus\\Hybrid\\Lib\\Service\\Period\\Sub\\BasedCalcs'); // $result = $this->_subBasedCalcs->getDependentCalcData($dependentCalcTypeCode, $baseCalcTypeCode); $mResult = new PeriodGetForDependentCalcResponse(); $mResult->markSucceed(); $mSubWriteOff->expects($this->once())->method('getDependentCalcData')->willReturn($mResult); /** * Prepare request and perform call. */ /** @var $call Call */ $call = new Call($mLogger, $mDba, $mToolbox, $mCallRepo, $mSubDb, $mSubWriteOff); $req = new Request\GetForDependentCalc(); $req->setBaseCalcTypeCode($CALC_TYPE_CODE_BASE); $req->setDependentCalcTypeCode($CALC_TYPE_CODE_DEPEND); $resp = $call->getForDependentCalc($req); $this->assertTrue($resp->isSucceed()); }
/** * @param Request\GetForDependentCalc $request * * @return Response\GetForDependentCalc */ public function getForDependentCalc(Request\GetForDependentCalc $request) { // $result = new Response\GetForDependentCalc(); $depCalcTypeCode = $request->getDependentCalcTypeCode(); $baseCalcTypeCode = $request->getBaseCalcTypeCode(); $this->_logger->info("'Get latest period for Dependent Calculation' operation is started " . "(dependent={$depCalcTypeCode}, base={$baseCalcTypeCode})."); $result = $this->_subBasedCalcs->getDependentCalcData($depCalcTypeCode, $baseCalcTypeCode); $this->_logger->info("'Get latest period for Dependent Calculation' operation is completed."); return $result; }
public function test_getForDependentCalc() { $obm = \Magento\Framework\App\ObjectManager::getInstance(); /** @var $call \Praxigento\Bonus\Hybrid\Lib\Service\IPeriod */ $call = $obm->get('Praxigento\\Bonus\\Hybrid\\Lib\\Service\\IPeriod'); $request = new Request\GetForDependentCalc(); $request->setDependentCalcTypeCode(Cfg::CODE_TYPE_CALC_VALUE_TV); $request->setBaseCalcTypeCode(Cfg::CODE_TYPE_CALC_PV_WRITE_OFF); $response = $call->getForDependentCalc($request); $this->assertTrue($response->isSucceed()); }
public function test_getForDependentCalc() { $obm = \Magento\Framework\App\ObjectManager::getInstance(); /** @var $call \Praxigento\BonusBase\Service\Period\Call */ $call = $obm->get('Praxigento\\BonusBase\\Service\\Period\\Call'); $req = new Request\GetForDependentCalc(); $req->setBaseCalcTypeCode('LOYALTY_BON_COMPRESS'); $req->setDependentCalcTypeCode('HYBRID_VALUE_OV'); $resp = $call->getForDependentCalc($req); $this->assertTrue($resp->isSucceed()); }
public function getForDependentCalc(Request\GetForDependentCalc $request) { $result = new Response\GetForDependentCalc(); $baseCalcTypeCode = $request->getBaseCalcTypeCode(); $dependentCalcTypeCode = $request->getDependentCalcTypeCode(); $msg = "'Get latest period for Dependent Calculation' operation is started " . "(dependent={$dependentCalcTypeCode}, base={$baseCalcTypeCode})."; $this->_logger->info($msg); $def = $this->_manTrans->begin(); try { /* get IDs for calculations codes */ $baseCalcTypeId = $this->_repoTypeCalc->getIdByCode($baseCalcTypeCode); $dependentCalcTypeId = $this->_repoTypeCalc->getIdByCode($dependentCalcTypeCode); /* get the last base period data from repo */ $basePeriodData = $this->_repoService->getLastPeriodByCalcType($baseCalcTypeId); if (is_null($basePeriodData)) { $msg = "There is no period for '{$baseCalcTypeCode}' calculation yet (base). " . "Depended '{$dependentCalcTypeCode}' could not be calculated."; $this->_logger->warning($msg); } else { /* there is period for base calculation, place base data into response */ $result->setBasePeriodData($basePeriodData); $baseDsBegin = $basePeriodData->getDstampBegin(); $baseDsEnd = $basePeriodData->getDstampEnd(); /* then get data for depended period & calc */ $periodId = $basePeriodData->getId(); $result = $this->_subDepended->getDependedCalc($result, $periodId, $baseCalcTypeCode, $baseDsBegin, $baseDsEnd, $dependentCalcTypeCode, $dependentCalcTypeId); } $this->_manTrans->commit($def); /* mark succeed if depended data exists */ if ($result->getDependentPeriodData() && $result->getDependentCalcData()) { $result->markSucceed(); } } finally { $this->_manTrans->end($def); } $this->_logger->info("'Get latest period for Dependent Calculation' operation is completed."); return $result; }