]> git.mxchange.org Git - friendica.git/blobdiff - tests/src/Core/Console/ConsoleTest.php
Refactoring Logging to use Configuration
[friendica.git] / tests / src / Core / Console / ConsoleTest.php
index fd09a794528b4a343664c8c5a306ec75a60ac6b7..f733175d3434bd0cc0d47f06f727225b2997c2b7 100644 (file)
@@ -2,47 +2,55 @@
 
 namespace Friendica\Test\src\Core\Console;
 
-use Friendica\App;
-use Friendica\BaseObject;
+use Asika\SimpleConsole\Console;
+use Friendica\Core\Config\Configuration;
+use Friendica\Test\MockedTest;
+use Friendica\Test\Util\AppMockTrait;
 use Friendica\Test\Util\Intercept;
-use PHPUnit\Framework\TestCase;
+use Friendica\Test\Util\VFSTrait;
+use Friendica\Util\Profiler;
 
-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
-        */
-       private $console;
-       /**
-        * @var App The Friendica App
+        * @var array The default argv for a Console Instance
         */
-       protected $app;
-
-       protected $stdout;
+       protected $consoleArgv = [ 'consoleTest.php' ];
 
        protected function setUp()
        {
                parent::setUp();
 
-               Intercept::setUp();
-
                if (!getenv('MYSQL_DATABASE')) {
                        $this->markTestSkipped('Please set the MYSQL_* environment variables to your test database credentials.');
                }
 
-               // Reusable App object
-               $this->app = BaseObject::getApp();
-               $this->console = new MultiUseConsole();
+               Intercept::setUp();
+
+               $this->setUpVfsDir();
+               $configMock = \Mockery::mock(Configuration::class);
+               $this->mockApp($this->root, $configMock);
+               $profileMock = \Mockery::mock(Profiler::class);
+               $this->app->shouldReceive('getProfiler')->andReturn($profileMock);
        }
 
-       public function execute($args) {
+       /**
+        * 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;
        }
 }