]> git.mxchange.org Git - core.git/blobdiff - framework/main/tests/filter/tests/configuration/classes/class_TestConfigurationLoadableClassesFilter.php
Continued:
[core.git] / framework / main / tests / filter / tests / configuration / classes / class_TestConfigurationLoadableClassesFilter.php
index 175f5173cdc375f125db3f266e682fe171fc36cf..b6f49a7ae455b0a05c548ffba18e4505c096c1be 100644 (file)
@@ -8,6 +8,9 @@ use CoreFramework\Request\Requestable;
 use CoreFramework\Response\Responseable;
 use CoreFramework\Tests\Filter\BaseTestsFilter;
 
+// Import SPL stuff
+use \InvalidArgumentException;
+
 /**
  * A LoadableClasses filter for tests
  *
@@ -63,6 +66,39 @@ class TestConfigurationLoadableClassesFilter extends BaseTestsFilter implements
         * @todo        0% done
         */
        public function execute (Requestable $requestInstance, Responseable $responseInstance) {
+               // Loop through all configuration keys
+               foreach ($this->getConfigInstance()->getConfigurationArray() as $configKey => $configValue) {
+                       // Key must end with _class
+                       if (substr($configKey, -6, 6) != '_class') {
+                               // Skip this
+                               continue;
+                       } // END - if
+
+                       // Output message
+                       self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('Testing configKey=%s,configValue[%s]=%s', $configKey, gettype($configValue), $configValue));
+
+                       // This may throw exceptions
+                       try {
+                               // Is the class there?
+                               if (!class_exists($configValue)) {
+                                       // Class not found
+                                       self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('Class "%s" not found. FAILED', $configValue));
+
+                                       // Skip further tests
+                                       continue;
+                               } // END - if
+                       } catch (InvalidArgumentException $e) {
+                               // Maybe not conform?
+                               self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('Class "%s" failed to load. Message: "%s"', $configValue, $e->getMessage()));
+
+                               // Skip further tests
+                               continue;
+                       }
+
+                       // class_exists() didn't fail
+                       self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('Class "%s" loaded successfully. OKAY', $configValue));
+               } // END - foreach
+
                // Implement this!
                $this->partialStub('Please implement this method.');
        }