示例#1
0
 /**
  * @covers Xoops\Core\Handler\Scheme\LegacyModule::build
  */
 public function testBuild_optional()
 {
     $handler = Factory::getInstance()->newSpec()->scheme('legacy')->name('nosuchhandler')->dirname('avatars')->optional(true)->build();
     $this->assertNull($handler);
     $handler = Factory::getInstance()->newSpec()->scheme('legacy')->name('avatar')->dirname('avatars')->optional(true)->build();
     $this->assertInstanceOf('\\AvatarsAvatarHandler', $handler);
 }
示例#2
0
 /**
  * @covers Xoops\Core\Handler\Scheme\Kernel::build
  */
 public function testBuild_optional()
 {
     $handler = Factory::getInstance()->newSpec()->scheme('kernel')->name('nosuchhandler')->optional(true)->build();
     $this->assertNull($handler);
     $handler = Factory::getInstance()->newSpec()->scheme('kernel')->name('user')->optional(true)->build();
     $this->assertInstanceOf('\\Xoops\\Core\\Kernel\\Handlers\\XoopsUserHandler', $handler);
 }
示例#3
0
 /**
  * @covers Xoops\Core\Handler\Scheme\FQN::build
  */
 public function testBuild_optional()
 {
     $name = '\\Xoops\\Core\\Kernel\\Handlers\\NoSuchName';
     $spec = Factory::getInstance()->newSpec()->scheme('fqn')->name($name)->optional(true);
     $handler = $this->object->build($spec);
     $this->assertNull($handler);
     $name = '\\Xoops\\Core\\Kernel\\Handlers\\XoopsUserHandler';
     $spec = Factory::getInstance()->newSpec()->scheme('fqn')->name($name)->optional(true);
     $handler = $this->object->build($spec);
     $this->assertInstanceOf('\\Xoops\\Core\\Kernel\\Handlers\\XoopsUserHandler', $handler);
 }
示例#4
0
 /**
  * Get Module Handler
  *
  * @param string|null $name       name of handler
  * @param string|null $module_dir dirname of module
  * @param boolean     $optional   true if failure to load handler should be considered a warning, not an error
  *
  * @return XoopsObjectHandler|XoopsPersistableObjectHandler|bool
  */
 public function getModuleHandler($name = null, $module_dir = null, $optional = false)
 {
     // if $module_dir is not specified
     if (!isset($module_dir)) {
         // if a module is loaded
         if ($this->module instanceof XoopsModule) {
             $module_dir = $this->module->getVar('dirname', 'n');
         } else {
             trigger_error('No Module is loaded', E_USER_ERROR);
         }
     } else {
         $module_dir = trim($module_dir);
     }
     $name = !isset($name) ? $module_dir : trim($name);
     if (!isset($this->moduleHandlers[$module_dir][$name])) {
         if (!isset($this->handlerFactory)) {
             $this->handlerFactory = HandlerFactory::getInstance();
         }
         $handler = $this->handlerFactory->create($name, $module_dir, $optional);
         if ($handler === null) {
             $this->logger()->log(LogLevel::WARNING, sprintf('No handler for %s exists in module %s', $name, $module_dir));
         }
         $this->moduleHandlers[$module_dir][$name] = $handler;
     }
     return $this->moduleHandlers[$module_dir][$name];
 }
 /**
  * @covers Xoops\Core\Handler\Scheme\SchemeInterface::build
  */
 public function testBuild()
 {
     $spec = Factory::getInstance()->newSpec();
     $this->assertNull($this->object->build($spec));
 }
示例#6
0
 /**
  * @return FactorySpec
  */
 public static function newSpec()
 {
     $instance = Factory::getInstance();
     $spec = FactorySpec::getInstance($instance);
     return $spec;
 }
示例#7
0
 /**
  * @covers Xoops\Core\Handler\Factory::getInstance
  */
 public function testGetInstance()
 {
     $instance = Factory::getInstance();
     $this->assertSame($this->object, $instance, 'Singleton');
 }