]> git.mxchange.org Git - friendica.git/blobdiff - tests/src/Core/StorageManagerTest.php
Shorten "Configuration" to "Config" again, since the Wrapper is gone
[friendica.git] / tests / src / Core / StorageManagerTest.php
index 083d12d5797b16f7da63dbbdbcf53e2f07d47c4b..b626978863575ba335296ff66ae371f274059d3a 100644 (file)
@@ -3,10 +3,10 @@
 namespace Friendica\Test\src\Core;
 
 use Dice\Dice;
-use Friendica\Core\Config\IConfiguration;
-use Friendica\Core\Config\PreloadConfiguration;
+use Friendica\Core\Config\IConfig;
+use Friendica\Core\Config\PreloadConfig;
 use Friendica\Core\Hook;
-use Friendica\Core\L10n\L10n;
+use Friendica\Core\L10n;
 use Friendica\Core\Session\ISession;
 use Friendica\Core\StorageManager;
 use Friendica\Database\Database;
@@ -24,16 +24,11 @@ use Psr\Log\LoggerInterface;
 use Psr\Log\NullLogger;
 use Friendica\Test\Util\SampleStorageBackend;
 
-/**
- * @todo Rework Hook:: methods to dynamic to remove the separated process annotation
- *
- * @runTestsInSeparateProcesses
- */
 class StorageManagerTest extends DatabaseTest
 {
        /** @var Database */
        private $dba;
-       /** @var IConfiguration */
+       /** @var IConfig */
        private $config;
        /** @var LoggerInterface */
        private $logger;
@@ -61,7 +56,7 @@ class StorageManagerTest extends DatabaseTest
                $this->dba = new StaticDatabase($configCache, $profiler, $this->logger);
 
                $configModel  = new Config($this->dba);
-               $this->config = new PreloadConfiguration($configCache, $configModel);
+               $this->config = new PreloadConfig($configCache, $configModel);
 
                $this->l10n = \Mockery::mock(L10n::class);
        }
@@ -114,10 +109,42 @@ class StorageManagerTest extends DatabaseTest
                ];
        }
 
+       /**
+        * Data array for legacy backends
+        *
+        * @todo 2020.09 After 2 releases, remove the legacy functionality and these data array with it
+        *
+        * @return array
+        */
+       public function dataLegacyBackends()
+       {
+               return [
+                       'legacyDatabase'          => [
+                               'name'        => 'Friendica\Model\Storage\Database',
+                               'assert'      => Storage\Database::class,
+                               'assertName'  => Storage\Database::NAME,
+                               'userBackend' => true,
+                       ],
+                       'legacyFilesystem'       => [
+                               'name'        => 'Friendica\Model\Storage\Filesystem',
+                               'assert'      => Storage\Filesystem::class,
+                               'assertName'  => Storage\Filesystem::NAME,
+                               'userBackend' => true,
+                       ],
+                       'legacySystemResource'     => [
+                               'name'        => 'Friendica\Model\Storage\SystemResource',
+                               'assert'      => Storage\SystemResource::class,
+                               'assertName'  => Storage\SystemResource::NAME,
+                               'userBackend' => false,
+                       ],
+               ];
+       }
+
        /**
         * Test the getByName() method
         *
         * @dataProvider dataStorages
+        * @dataProvider dataLegacyBackends
         */
        public function testGetByName($name, $assert, $assertName, $userBackend)
        {
@@ -128,7 +155,6 @@ class StorageManagerTest extends DatabaseTest
                if (!empty($assert)) {
                        $this->assertInstanceOf(Storage\IStorage::class, $storage);
                        $this->assertInstanceOf($assert, $storage);
-                       $this->assertEquals($name, $storage::getName());
                } else {
                        $this->assertNull($storage);
                }
@@ -144,7 +170,11 @@ class StorageManagerTest extends DatabaseTest
        {
                $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n);
 
-               $this->assertEquals($userBackend, $storageManager->isValidBackend($name));
+               // true in every of the backends
+               $this->assertEquals(!empty($assertName), $storageManager->isValidBackend($name));
+
+               // if userBackend is set to true, filter out e.g. SystemRessource
+               $this->assertEquals($userBackend, $storageManager->isValidBackend($name, true));
        }
 
        /**
@@ -179,6 +209,7 @@ class StorageManagerTest extends DatabaseTest
         * Test the method getBackend() with a pre-configured backend
         *
         * @dataProvider dataStorages
+        * @dataProvider dataLegacyBackends
         */
        public function testPresetBackend($name, $assert, $assertName, $userBackend)
        {
@@ -266,4 +297,17 @@ class StorageManagerTest extends DatabaseTest
                        $this->assertNotEmpty($data);
                }
        }
+
+       /**
+        * Test moving data to a WRONG storage
+        *
+        * @expectedException \Friendica\Model\Storage\StorageException
+        * @expectedExceptionMessage Can't move to storage backend 'SystemResource'
+        */
+       public function testMoveStorageWrong()
+       {
+               $storageManager = new StorageManager($this->dba, $this->config, $this->logger, $this->l10n);
+               $storage = $storageManager->getByName(Storage\SystemResource::getName());
+               $storageManager->move($storage);
+       }
 }