public function testNotifyDiagnostic() { $this->markTestIncomplete("Missing transaction at memcached"); $proto = new \Application\Proto\SupDiagnosisAsync\DiagnosisNotification(); $result = new \Application\Proto\Result(); $result->setCode(0); $result->setReason('GSM_UP'); $proto->setExecResult($result); $proto->setResult(1); $id = new \Application\Proto\SupProvision\Sim\SimId(); $id->setImsi('214074300000018'); $proto->setSimId($id); $proto->setTaskId(sha1(time())); return $this->_testNotify($proto, 'business.service.supdiagnosisasync.diagnosisasync.DiagnosisNotification', $proto->getTaskId()); }
private function _genDiagnosisNotification($transactionId) { $res = new \Application\Proto\SupDiagnosisAsync\DiagnosisNotification(); $result = new \Application\Proto\Result(); $result->setCode('OK'); $result->setReason('Operation successful'); $res->setResult($result); $simId = new \Application\Proto\SupProvision\Sim\SimId(); $simId->setImsi('1288228282'); $res->setSimId($simId); $res->setTaskId('taskId'); $res->setType(\Application\Proto\SupDiagnosis\Diagnosis\DiagnosisType::TYPE_2); $res->setResult(\Application\Proto\SupDiagnosisAsync\DiagnosisNotification\DiagnosisResult::GSM_UP); $dateInterval = new \Application\Proto\DateInterval(); $dateInterval->setStartDate('2011-11-11'); $dateInterval->setEndDate('2011-12-11'); $res->setTime($dateInterval); $req = new \Application\Proto\AsyncNotification\Service\Request(); $req->setToken($transactionId); $req->setProto('business.service.supdiagnosisasync.diagnosisasync'); $req->message = $res; return $req; }
private function _diagnosisEricsson($imsi, $diagnosisType) { if (!$imsi | !$diagnosisType) { throw new InvalidArgumentException(get_class($this) . ': Invalid parameters.'); } $methodName = 'diagnosisNotification'; /** * @var $proto \Application\Proto\SupDiagnosis\Diagnosis\DiagnosisRequest */ $proto = $this->_createProto($methodName); $id = new \Application\Proto\SupProvision\Sim\SimId(); // WTF? $id->setImsi($imsi); $proto->setSimId($id); $type = $this->_mapDiagnosisTypeToEricsson($diagnosisType); $proto->setDiagnosisType($type); /** * var $response \Application\Proto\SupDiagnosis\Diagnosis\DiagnosisResponse */ $response = $this->_sendRequest($methodName, array('protoMessage' => $proto)); $this->_checkPostResponse($response); $watcher = $this->_constructWatcherToTransaction(); $watcher->entityType = "diagnosis"; $watcher->params->action = "simDiagnosis"; $watcher->params->imsi = $imsi; $watcher->params->type = $diagnosisType; $this->_watcherToTransactionId($response->getDiagnosisTaskId(), array('imsi_' . $imsi), array(), $watcher); return $watcher; }
protected function _DiagnosisHistory(\Application\Proto\SupSpotlight\Sim\SimHistoryRequest $req) { $resp = new \Application\Proto\SupSpotlight\Diagnosis\DiagnosisHistoryListResponse(); $result = new PB\Result(); $result->setCode(0); $result->setReason('Ok'); $resp->setResult($result); $id = new \Application\Proto\SupProvision\Sim\SimId(); $id->setImsi('MOCK'); $resp->setSimId($id); // Compute start and end times $start = strtotime($req->getDateInterval()->getStartDate()) ?: mktime(0, 0, 0, 1, 1, 2011); $end = strtotime($req->getDateInterval()->getEndDate()) ?: time(); // Extract start date parts to build new times over them $year = date('Y', $start); $month = date('n', $start); $day = date('d', $start); $hour = rand(0, 23); $statuses = array(\Application\Proto\SupSpotlight\Diagnosis\DiagnosisDetail\DiagResponseType::GSM_UP, \Application\Proto\SupSpotlight\Diagnosis\DiagnosisDetail\DiagResponseType::GSM_DOWN, \Application\Proto\SupSpotlight\Diagnosis\DiagnosisDetail\DiagResponseType::IP_UP, \Application\Proto\SupSpotlight\Diagnosis\DiagnosisDetail\DiagResponseType::IP_DOWN); $limit = rand(10, 30); for ($i = 0; $i < $limit; $i++) { // Build a new timestamp using random values $time = mktime($hour, rand(0, 59), rand(0, 59), $month, $day, $year); if ($time > $end) { continue; } $hour += rand(1, 36); $row = new Application\Proto\SupSpotlight\Diagnosis\DiagnosisDetail(); $row->setDescription($statuses[array_rand($statuses)]); $row->setEndDate(gmdate('Y-m-d\\TH:i:s\\Z', $time)); $resp->addDiagnosisDetail($row); } return $resp; }