]> git.mxchange.org Git - friendica.git/blobdiff - tests/src/Core/Console/ConsoleTest.php
Merge pull request #7068 from MrPetovan/task/7047-theme-error-page
[friendica.git] / tests / src / Core / Console / ConsoleTest.php
index 75f339e8f5ddba2ae15148bbf1a9c7be00c6b536..e142e60066a8eb97f700d82739c4f7d5ab709871 100644 (file)
@@ -2,29 +2,21 @@
 
 namespace Friendica\Test\src\Core\Console;
 
-use Friendica\App;
-use Friendica\BaseObject;
-use Friendica\Database\DBA;
+use Asika\SimpleConsole\Console;
+use Friendica\Test\MockedTest;
+use Friendica\Test\Util\AppMockTrait;
 use Friendica\Test\Util\Intercept;
 use Friendica\Test\Util\VFSTrait;
-use org\bovigo\vfs\vfsStream;
-use org\bovigo\vfs\vfsStreamDirectory;
-use PHPUnit\Framework\TestCase;
 
-abstract class ConsoleTest extends TestCase
+abstract class ConsoleTest extends MockedTest
 {
        use VFSTrait;
+       use AppMockTrait;
 
        /**
-        * @var MultiUseConsole Extension of the basic Friendica Console for testing purpose
+        * @var array The default argv for a Console Instance
         */
-       private $console;
-       /**
-        * @var App The Friendica App
-        */
-       protected $app;
-
-       protected $stdout;
+       protected $consoleArgv = [ 'consoleTest.php' ];
 
        protected function setUp()
        {
@@ -32,41 +24,23 @@ abstract class ConsoleTest extends TestCase
 
                Intercept::setUp();
 
-               if (!getenv('MYSQL_DATABASE')) {
-                       $this->markTestSkipped('Please set the MYSQL_* environment variables to your test database credentials.');
-               }
-
                $this->setUpVfsDir();
-
-               // fake console.php for setting an executable
-               vfsStream::newFile('console.php')
-                       ->at($this->root->getChild('bin'))
-                       ->setContent('<? php');
-
-               // Reusable App object
-               $this->app = new App($this->root->url());
-               BaseObject::setApp($this->app);
-               $this->console = new MultiUseConsole();
        }
 
-       public function execute($args) {
-               $this->app->reload();
-
-               array_unshift($args, $this->getExecutablePath());
+       /**
+        * Dumps the execution of an console output to a string and returns it
+        *
+        * @param Console $console The current console instance
+        *
+        * @return string the output of the execution
+        */
+       protected function dumpExecute($console)
+       {
                Intercept::reset();
-               $this->console->reset();
-               $this->console->parseTestArgv($args);
-               $this->console->execute();
-
+               $console->execute();
                $returnStr = Intercept::$cache;
                Intercept::reset();
-               return $returnStr;
-       }
 
-       /**
-        * @return string returns the path to the console executable during tests
-        */
-       protected function getExecutablePath() {
-               return $this->root->getChild('bin' . DIRECTORY_SEPARATOR . 'console.php')->url();
+               return $returnStr;
        }
 }