]> git.mxchange.org Git - friendica.git/blobdiff - tests/src/Core/StorageManagerTest.php
Move L10n class from L10n subdir to Core (replacing old wrapper)
[friendica.git] / tests / src / Core / StorageManagerTest.php
index 443f8e786b83248f185533c2e3d20359f7360d6b..118d4bb57b393495d18022eb7e1a8d3a5d4ce282 100644 (file)
@@ -6,7 +6,7 @@ use Dice\Dice;
 use Friendica\Core\Config\IConfiguration;
 use Friendica\Core\Config\PreloadConfiguration;
 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;
@@ -109,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)
        {
@@ -123,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);
                }
@@ -139,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));
        }
 
        /**
@@ -174,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)
        {
@@ -261,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);
+       }
 }