X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=tests%2Fsrc%2FCore%2FStorageManagerTest.php;h=30342099c55bdfb445e2614e64d3ec59c5e20a0a;hb=53237a0259477b13eebcd98fd872d3255e41e860;hp=443f8e786b83248f185533c2e3d20359f7360d6b;hpb=3c1f127e3c4cc604ee4b05738ba483f3adef159f;p=friendica.git diff --git a/tests/src/Core/StorageManagerTest.php b/tests/src/Core/StorageManagerTest.php index 443f8e786b..30342099c5 100644 --- a/tests/src/Core/StorageManagerTest.php +++ b/tests/src/Core/StorageManagerTest.php @@ -1,12 +1,31 @@ . + * + */ 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; @@ -15,6 +34,7 @@ use Friendica\Factory\ConfigFactory; use Friendica\Model\Config\Config; use Friendica\Model\Storage; use Friendica\Core\Session; +use Friendica\Database\DBStructure; use Friendica\Test\DatabaseTest; use Friendica\Test\Util\Database\StaticDatabase; use Friendica\Test\Util\VFSTrait; @@ -28,7 +48,7 @@ class StorageManagerTest extends DatabaseTest { /** @var Database */ private $dba; - /** @var IConfiguration */ + /** @var IConfig */ private $config; /** @var LoggerInterface */ private $logger; @@ -55,8 +75,10 @@ class StorageManagerTest extends DatabaseTest $this->dba = new StaticDatabase($configCache, $profiler, $this->logger); + $this->dba->setTestmode(true); + $configModel = new Config($this->dba); - $this->config = new PreloadConfiguration($configCache, $configModel); + $this->config = new PreloadConfig($configCache, $configModel); $this->l10n = \Mockery::mock(L10n::class); } @@ -109,10 +131,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 +177,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 +192,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 +231,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 +319,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); + } }