]> git.mxchange.org Git - friendica.git/commitdiff
Add DEVELOP flag for StorageManager for testing purpose only
authorPhilipp <admin@philipp.info>
Sun, 23 Jan 2022 19:36:35 +0000 (20:36 +0100)
committerPhilipp <admin@philipp.info>
Sun, 23 Jan 2022 19:40:38 +0000 (20:40 +0100)
src/Core/Storage/Repository/StorageManager.php
tests/src/Core/Storage/Repository/StorageManagerTest.php

index b05e054d07f4083f69596b918aab0875cd56709d..89a7a913ab8d42c347d56befdf8ba5b78e9bc57d 100644 (file)
@@ -80,11 +80,12 @@ class StorageManager
         * @param IManageConfigValues $config
         * @param LoggerInterface     $logger
         * @param L10n                $l10n
+        * @param bool                $includeAddon (DEVELOP ONLY) Used for testing only - avoids loading addons because of DB direct access
         *
         * @throws InvalidClassStorageException in case the active backend class is invalid
         * @throws StorageException in case of unexpected errors during the active backend class loading
         */
-       public function __construct(Database $dba, IManageConfigValues $config, LoggerInterface $logger, L10n $l10n)
+       public function __construct(Database $dba, IManageConfigValues $config, LoggerInterface $logger, L10n $l10n, bool $includeAddon = true)
        {
                $this->dba           = $dba;
                $this->config        = $config;
@@ -96,8 +97,10 @@ class StorageManager
 
                /// @fixme Loading the addons & hooks here is really bad practice, but solves https://github.com/friendica/friendica/issues/11178
                /// clean solution = Making Addon & Hook dynamic and load them inside the constructor, so there's no custom load logic necessary anymore
-               Addon::loadAddons();
-               Hook::loadHooks();
+               if ($includeAddon) {
+                       Addon::loadAddons();
+                       Hook::loadHooks();
+               }
 
                // you can only use user backends as a "default" backend, so the second parameter is true
                $this->currentBackend = $this->getWritableStorageByName($currentName);
index 6e36821892cd00b50bdd1989b1c98d3d071e016d..c387e265bf9529fc522484d6f53cbd1ff1db3733 100644 (file)
@@ -40,7 +40,6 @@ use Friendica\DI;
 use Friendica\Core\Config\Factory\Config;
 use Friendica\Core\Config\Repository;
 use Friendica\Core\Storage\Type;
-use Friendica\Network\HTTPClient\Client\HttpClient;
 use Friendica\Test\DatabaseTest;
 use Friendica\Test\Util\Database\StaticDatabase;
 use Friendica\Test\Util\VFSTrait;
@@ -61,8 +60,6 @@ class StorageManagerTest extends DatabaseTest
        private $logger;
        /** @var L10n */
        private $l10n;
-       /** @var HttpClient */
-       private $httpRequest;
 
        protected function setUp(): void
        {
@@ -92,8 +89,6 @@ class StorageManagerTest extends DatabaseTest
                $this->config->set('storage', 'filesystem_path', $this->root->getChild(Type\FilesystemConfig::DEFAULT_BASE_FOLDER)->url());
 
                $this->l10n = \Mockery::mock(L10n::class);
-
-               $this->httpRequest = \Mockery::mock(HttpClient::class);
        }
 
        protected function tearDown(): void
@@ -108,7 +103,7 @@ class StorageManagerTest extends DatabaseTest
         */
        public function testInstance()
        {
-               $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n, $this->httpRequest);
+               $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n, false);
 
                self::assertInstanceOf(StorageManager::class, $storageManager);
        }
@@ -170,7 +165,7 @@ class StorageManagerTest extends DatabaseTest
                        $this->config->set('storage', 'name', $name);
                }
 
-               $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n);
+               $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n, false);
 
                if ($interface === ICanWriteToStorage::class) {
                        $storage = $storageManager->getWritableStorageByName($name);
@@ -190,7 +185,7 @@ class StorageManagerTest extends DatabaseTest
         */
        public function testIsValidBackend($name, $valid, $interface, $assert, $assertName)
        {
-               $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n);
+               $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n, false);
 
                // true in every of the backends
                self::assertEquals(!empty($assertName), $storageManager->isValidBackend($name));
@@ -204,7 +199,7 @@ class StorageManagerTest extends DatabaseTest
         */
        public function testListBackends()
        {
-               $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n);
+               $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n, false);
 
                self::assertEquals(StorageManager::DEFAULT_BACKENDS, $storageManager->listBackends());
        }
@@ -220,7 +215,7 @@ class StorageManagerTest extends DatabaseTest
                        static::markTestSkipped('only works for ICanWriteToStorage');
                }
 
-               $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n);
+               $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n, false);
 
                $selBackend = $storageManager->getWritableStorageByName($name);
                $storageManager->setBackend($selBackend);
@@ -240,7 +235,7 @@ class StorageManagerTest extends DatabaseTest
                        $this->expectException(InvalidClassStorageException::class);
                }
 
-               $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n);
+               $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n, false);
 
                self::assertInstanceOf($assert, $storageManager->getBackend());
        }
@@ -261,7 +256,7 @@ class StorageManagerTest extends DatabaseTest
                        ->addRule(IHandleSessions::class, ['instanceOf' => Memory::class, 'shared' => true, 'call' => null]);
                DI::init($dice);
 
-               $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n);
+               $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n, false);
 
                self::assertTrue($storageManager->register(SampleStorageBackend::class));
 
@@ -289,7 +284,7 @@ class StorageManagerTest extends DatabaseTest
                        ->addRule(IHandleSessions::class, ['instanceOf' => Memory::class, 'shared' => true, 'call' => null]);
                DI::init($dice);
 
-               $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n);
+               $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n, false);
 
                self::assertTrue($storageManager->register(SampleStorageBackend::class));
 
@@ -328,7 +323,7 @@ class StorageManagerTest extends DatabaseTest
 
                $this->loadFixture(__DIR__ . '/../../../../datasets/storage/database.fixture.php', $this->dba);
 
-               $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n);
+               $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n, false);
                $storage        = $storageManager->getWritableStorageByName($name);
                $storageManager->move($storage);
 
@@ -352,7 +347,7 @@ class StorageManagerTest extends DatabaseTest
                $this->expectException(InvalidClassStorageException::class);
                $this->expectExceptionMessage('Backend SystemResource is not valid');
 
-               $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n);
+               $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n, false);
                $storage        = $storageManager->getWritableStorageByName(SystemResource::getName());
                $storageManager->move($storage);
        }