X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=application%2Ftests%2Fclass_ApplicationHelper.php;h=e21b875187296915dd838ba9119515da84b91dfc;hp=f05d1d9f6336ea38fbf21647b9ef67b382f14583;hb=HEAD;hpb=75d22b262f62dd88e577ade6da3d6be9d34b9930 diff --git a/application/tests/class_ApplicationHelper.php b/application/tests/class_ApplicationHelper.php index f05d1d9f..161f9fc2 100644 --- a/application/tests/class_ApplicationHelper.php +++ b/application/tests/class_ApplicationHelper.php @@ -1,4 +1,18 @@ * @version 0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2014 Core Developer Team + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2023 Core Developer Team * @license GNU GPL 3.0 or any newer version * * This program is free software: you can redistribute it and/or modify @@ -38,33 +52,13 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -class ApplicationHelper extends BaseFrameworkSystem implements ManageableApplication, Registerable { - /** - * The version number of this application - */ - private $appVersion = ''; - - /** - * The human-readable name for this application - */ - private $appName = ''; - - /** - * The short uni*-like name for this application - */ - private $shortName = ''; - - /** - * An instance of this class - */ - private static $selfInstance = NULL; - +class ApplicationHelper extends BaseApplication implements ManageableApplication, Registerable { /** * Private constructor * * @return void */ - protected function __construct () { + private function __construct () { // Call parent constructor parent::__construct(__CLASS__); } @@ -76,105 +70,52 @@ class ApplicationHelper extends BaseFrameworkSystem implements ManageableApplica */ public static final function getSelfInstance () { // Is the instance there? - if (is_null(self::$selfInstance)) { - self::$selfInstance = new ApplicationHelper(); - } // END - if + if (is_null(self::getApplicationInstance())) { + // Then set it + self::setApplicationInstance(new ApplicationHelper()); + } // Return the instance - return self::$selfInstance; - } - - /** - * Getter for the version number - * - * @return $appVersion The application's version number - */ - public final function getAppVersion () { - return $this->appVersion; - } - /** - * Setter for the version number - * - * @param $appVersion The application's version number - * @return void - */ - public final function setAppVersion ($appVersion) { - // Cast and set it - $this->appVersion = (string) $appVersion; - } - - /** - * Getter for human-readable name - * - * @return $appName The application's human-readable name - */ - public final function getAppName () { - return $this->appName; + return self::getApplicationInstance(); } /** - * Setter for human-readable name + * 1) Setups application data * - * @param $appName The application's human-readable name * @return void */ - public final function setAppName ($appName) { - // Cast and set it - $this->appName = (string) $appName;; - } - - /** - * Getter for short uni*-like name - * - * @return $shortName The application's short uni*-like name - */ - public final function getAppShortName () { - return $this->shortName; + public function setupApplicationData () { + // Set all application data + $this->setAppName('Unit tests and more'); + $this->setAppVersion('0.0.0'); + $this->setAppShortName('tests'); } /** - * Setter for short uni*-like name + * 2) Does initial stuff before starting the application * - * @param $shortName The application's short uni*-like name * @return void */ - public final function setAppShortName ($shortName) { - // Cast and set it - $this->shortName = (string) $shortName; + public function initApplication () { + // Initialize output system + self::createDebugInstance('ApplicationHelper'); + + /* + * This application needs a database connection then simply call init + * method. + */ + FrameworkBootstrap::initDatabaseInstance(); } /** - * Launches the test suite + * 3) Launches the application * * @return void */ - public final function entryPoint () { - // Set this application in registry - Registry::getRegistry()->addInstance('app', $this); - - // Default response is console - $response = $this->getResponseTypeFromSystem(); - $responseType = $this->getResponseTypeFromSystem(); - - // Create a new request object - $requestInstance = ObjectFactory::createObjectByName($this->convertToClassName($response) . 'Request'); - - // Remember request instance here - $this->setRequestInstance($requestInstance); - - // Do we have another response? - if ($requestInstance->isRequestElementSet('request')) { - // Then use it - $response = strtolower($requestInstance->getRequestElement('request')); - $responseType = $response; - } // END - if - - // ... and a new response object - $responseClass = sprintf('%sResponse', $this->convertToClassName($response)); - $responseInstance = ObjectFactory::createObjectByName($responseClass, array($this)); - - // Remember response instance here - $this->setResponseInstance($responseInstance); + public function launchApplication () { + // Get request/response instances + $requestInstance = FrameworkBootstrap::getRequestInstance(); + $responseInstance = FrameworkBootstrap::getResponseInstance(); // Get the parameter from the request $commandName = $requestInstance->getRequestElement('command'); @@ -182,15 +123,23 @@ class ApplicationHelper extends BaseFrameworkSystem implements ManageableApplica // If it is null then get default command if (is_null($commandName)) { // Get default command - $commandName = $responseInstance->getDefaultCommand(); + $commandName = $responseInstance->determineDefaultCommand(); // Set it in request $requestInstance->setRequestElement('command', $commandName); - } // END - if + } - // Get a controller resolver - $resolverClass = $this->convertToClassName($this->getAppShortName() . '_' . $responseType . '_controller_resolver'); - $resolverInstance = ObjectFactory::createObjectByName($resolverClass, array($commandName, $this)); + // Configuration entry key + $configEntry = sprintf( + '%s_%s_controller_resolver_class', + $this->getAppShortName(), + FrameworkBootstrap::getRequestTypeFromSystem() + ); + + // Get a controller resolver instance + $resolverInstance = ObjectFactory::createObjectByConfiguredName($configEntry, [ + $commandName, + ]); // Get a controller instance as well $this->setControllerInstance($resolverInstance->resolveController()); @@ -199,11 +148,9 @@ class ApplicationHelper extends BaseFrameworkSystem implements ManageableApplica $this->getControllerInstance()->handleRequest($requestInstance, $responseInstance); // -------------------------- Shutdown phase -------------------------- - // Shutting down the hub by saying "good bye" to all connected peers - // and other hubs, flushing all queues and caches. - self::createDebugInstance(__CLASS__)->debugOutput('MAIN: Shutdown in progress, main loop exited.'); + self::createDebugInstance(__CLASS__, __LINE__)->debugMessage('MAIN: Shutdown in progress ...'); $this->getControllerInstance()->executeShutdownFilters($requestInstance, $responseInstance); - self::createDebugInstance(__CLASS__)->debugOutput('MAIN: Shutdown completed. (This is the last line.)'); + self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('MAIN: Shutdown completed. (This is the last line.)'); } /** @@ -217,7 +164,7 @@ class ApplicationHelper extends BaseFrameworkSystem implements ManageableApplica // Walk through all messages foreach ($messageList as $message) { exit(__METHOD__ . ':MSG:' . $message); - } // END - foreach + } } /** @@ -226,9 +173,18 @@ class ApplicationHelper extends BaseFrameworkSystem implements ManageableApplica * @return $masterTemplateName Name of the master template */ public function buildMasterTemplateName () { - return 'node_main'; + return 'tests_main'; + } + + /** + * Assigns extra application-depending data + * + * @param $templateInstance An instance of a CompileableTemplate class + * @return void + * @todo Nothing to add? + */ + public function assignExtraTemplateData (CompileableTemplate $templateInstance) { + DebugMiddleware::getSelfInstance()->partialStub('Unfinished method. templateInstance=' . $templateInstance->__toString()); } -} -// [EOF] -?> +}