/**
  * Init AuthorizationManager variables
  */
 public function init()
 {
     if (!ResolvableAuthorizationInstance::getInstance()) {
         return false;
     }
     $this->_initialized = true;
     return true;
 }
 /**
  * Test initialization
  */
 public function testInitilization()
 {
     $this->component->startup(new Event("Controller.startup", $this->controller));
     $this->assertNotNull(ResolvableAuthorizationInstance::getInstance());
     $context = ResolvableAuthorizationInstance::getInstance()->context;
     $this->assertSame($this->controller->getUser(), $context->user);
     $this->assertSame($this->controller, $context->controller);
     $this->assertSame($this->request->params['action'], $context->action);
     $this->assertSame($this->component, $context->manager);
     $this->assertSame($this->request, $context->request);
 }
 /**
  * Creates instances from an array.
  *
  * Example :
  *  $array = [
  *      ['type', 'param'],
  *      ['Group', 'user'],
  *      'ignoredAlreadyRegisteredResolvableAuthorization',
  *      $ignoredAlreadyRegisteredResolvableAuthorization
  *  ]
  *
  * @param $authorizationArray
  * @return array
  * @throws Exception
  * @throws InvalidArgumentException
  */
 public function createFromArray($authorizationArray)
 {
     $resolvables = [];
     foreach ($authorizationArray as $resolvable) {
         if (!is_array($resolvable)) {
             $resolvables[] = ResolvableAuthorizationRegistry::get($resolvable);
             continue;
         }
         $resolvables[] = ResolvableAuthorizationInstance::getInstance()->create($resolvable[0], $resolvable[1]);
     }
     return $resolvables;
 }
 /**
  * @param string $type
  * @param $params
  * @return ResolvableAuthorizationInterface
  */
 public function getResolvable($type, $params)
 {
     return ResolvableAuthorizationInstance::getInstance()->create(ucwords(strtolower($type)), $params);
 }
 /**
  * @expectedException InvalidArgumentException
  */
 public function testCreateFromArrayWithUnregistered()
 {
     $result = ResolvableAuthorizationInstance::getInstance()->createFromArray(['unregistered']);
 }