public function GetSolutionFilesOnly(\Puzzlout\Framework\Core\Application $app)
 {
     $Cacher = \Puzzlout\Framework\Core\Cache\BaseCache::Init($app->config);
     //$Cacher->Remove(CacheKeys::SOLUTION_CLASSES);
     if (!$Cacher->KeyExists(CacheKeys::SOLUTION_CLASSES)) {
         $ArrayResult = \Puzzlout\Framework\Core\FileManager\ArrayFilterFileSearch::Init($app)->RecursiveFileTreeScanOf("APP_ROOT_DIR" . \Puzzlout\Framework\Enums\FrameworkFolderName::CORE, \Puzzlout\Framework\Core\FileManager\Algorithms\ArrayListAlgorithm::ExcludeList());
         $Cacher->Create(CacheKeys::SOLUTION_CLASSES, $ArrayResult);
     } else {
         $ArrayResult = $Cacher->Read(CacheKeys::SOLUTION_CLASSES, array());
     }
     return $ArrayResult;
 }
 public function processSourceFolder()
 {
     $fullExcludeList = array_merge(ArrayListAlgorithm::Init()->ExcludeListForTestSuite(), $this->ExceptionFilters);
     $listOfDir = ArrayFilterFileSearch::InitWithoutApp()->RecursiveFileTreeScanOf(ROOT_DIR . self::SOURCE_FOLDER_NAME, $fullExcludeList);
     if (TESTING_FILE_TREE) {
         var_dump($listOfDir);
         return;
     }
     foreach ($listOfDir as $sourceDirectory => $files) {
         $targetDir = $this->getFullDirectoryValue($sourceDirectory);
         $this->createTestClasses($sourceDirectory, $targetDir, $files);
     }
     return $this;
 }