]> git.mxchange.org Git - friendica.git/blob - tests/src/Database/DBStructureTest.php
Merge pull request #7386 from MrPetovan/bug/7293-hide-registration-link
[friendica.git] / tests / src / Database / DBStructureTest.php
1 <?php
2
3 namespace Friendica\Test\src\Database;
4
5 use Friendica\App;
6 use Friendica\Core\Config\Cache\PConfigCache;
7 use Friendica\Database\DBStructure;
8 use Friendica\Factory;
9 use Friendica\Model\Config\Config;
10 use Friendica\Test\DatabaseTest;
11 use Friendica\Util\BaseURL;
12
13 class DBStructureTest extends DatabaseTest
14 {
15         /**
16          * @throws \Friendica\Network\HTTPException\InternalServerErrorException
17          */
18         public function setUp()
19         {
20                 $configModel = new Config(self::$dba);
21                 $config = Factory\ConfigFactory::createConfig(self::$configCache, $configModel);
22                 $pconfigModel = new \Friendica\Model\Config\PConfig(self::$dba);
23                 Factory\ConfigFactory::createPConfig(self::$configCache, new PConfigCache(), $pconfigModel);
24                 $logger = Factory\LoggerFactory::create('test', self::$dba, $config, self::$profiler);
25                 $baseUrl = new BaseURL($config, $_SERVER);
26                 $router = new App\Router();
27                 $this->app = new App(self::$dba, $config, self::$mode, $router, $baseUrl, $logger, self::$profiler, false);
28
29                 parent::setUp();
30         }
31
32         /**
33          * @small
34          */
35         public function testExists() {
36                 $this->assertTrue(DBStructure::existsTable('config'));
37
38                 $this->assertFalse(DBStructure::existsTable('notatable'));
39
40                 $this->assertTrue(DBStructure::existsColumn('config', ['k']));
41                 $this->assertFalse(DBStructure::existsColumn('config', ['nonsense']));
42                 $this->assertFalse(DBStructure::existsColumn('config', ['k', 'nonsense']));
43         }
44
45         /**
46          * @small
47          */
48         public function testRename() {
49                 $fromColumn = 'k';
50                 $toColumn = 'key';
51                 $fromType = 'varbinary(255) not null';
52                 $toType = 'varbinary(255) not null comment \'Test To Type\'';
53
54                 $this->assertTrue(DBStructure::rename('config', [ $fromColumn => [ $toColumn, $toType ]]));
55                 $this->assertTrue(DBStructure::existsColumn('config', [ $toColumn ]));
56                 $this->assertFalse(DBStructure::existsColumn('config', [ $fromColumn ]));
57
58                 $this->assertTrue(DBStructure::rename('config', [ $toColumn => [ $fromColumn, $fromType ]]));
59                 $this->assertTrue(DBStructure::existsColumn('config', [ $fromColumn ]));
60                 $this->assertFalse(DBStructure::existsColumn('config', [ $toColumn ]));
61         }
62
63         /**
64          * @small
65          */
66         public function testChangePrimaryKey() {
67                 $oldID = 'client_id';
68                 $newID = 'pw';
69
70                 $this->assertTrue(DBStructure::rename('clients', [ $newID ], DBStructure::RENAME_PRIMARY_KEY));
71                 $this->assertTrue(DBStructure::rename('clients', [ $oldID ], DBStructure::RENAME_PRIMARY_KEY));
72         }
73 }