public final function decodeAction($action, $canBeNull = true) { $action = $this->validateAction($action, $canBeNull); if ($action === null) { return 'null'; } return PsUtil::getClassConstByValue($this->CLASS, 'ACTION_', $action) . ' (' . $action . ')'; }
/** * Проверка состояния * * @param int $state - одно из состояний */ private function checkState($state) { if ($state !== $this->STATE) { PsUtil::raise('Invalid state of {}. Current state: {}. Expected: {}.', __CLASS__, PsUtil::getClassConstByValue(__CLASS__, 'STATE_', $this->STATE), PsUtil::getClassConstByValue(__CLASS__, 'STATE_', $state)); } }
/** * @covers PsUtil::getClassConstByValue */ public function testGetClassConstByValue() { $this->assertEquals('CONST_A', PsUtil::getClassConstByValue(new ClassA(), null, 'A')); $this->assertEquals('CONST_A', PsUtil::getClassConstByValue(new ClassA(), 'CONST_', 'A')); $this->assertEquals('CONST_A', PsUtil::getClassConstByValue(new ClassA(), 'CONST_A', 'A')); $this->assertEquals('CONST_B', PsUtil::getClassConstByValue(new ClassA(), null, 'B')); $this->assertEquals('CONST_B', PsUtil::getClassConstByValue(new ClassA(), 'CONST_', 'B')); $this->assertEquals('CONST_B', PsUtil::getClassConstByValue(new ClassA(), 'CONST_B', 'B')); try { //Константы не существует PsUtil::getClassConstByValue(new ClassA(), 'CONST_A', 'B'); $this->fail('Exception is expected'); } catch (PException $ex) { //OK } try { //Две константы с одинаковым значением PsUtil::getClassConstByValue(new ClassA(), 'CONST_', 'C'); $this->fail('Exception is expected'); } catch (PException $ex) { //OK } }
/** * Метод утверждает, что в классе есть константа с заданным значением. */ public static function assertClassHasConstVithValue($class, $prefix, $value) { PsUtil::getClassConstByValue($class, $prefix, $value); return $value; }