]> git.mxchange.org Git - friendica.git/blob - tests/src/Database/DatabaseTest.php
Update & fix
[friendica.git] / tests / src / Database / DatabaseTest.php
1 <?php
2
3 namespace Friendica\Test\src\Database;
4
5 use Friendica\Core\Config\Util\ConfigFileManager;
6 use Friendica\Core\Config\ValueObject\Cache;
7 use Friendica\Test\FixtureTest;
8 use Friendica\Test\Util\CreateDatabaseTrait;
9
10 class DatabaseTest extends FixtureTest
11 {
12         use CreateDatabaseTrait;
13
14         protected function setUp(): void
15         {
16                 $this->setUpVfsDir();
17
18                 parent::setUp();
19
20                 $this->configCache = new Cache();
21                 $this->configFileManager = new ConfigFileManager($this->root->url(), $this->root->url() . '/config/', $this->root->url() . '/static/');
22         }
23
24         /**
25          * Test, if directly updating a field is possible
26          */
27         public function testUpdateIncrease()
28         {
29                 $db = $this->getDbInstance();
30
31                 self::assertTrue($db->insert('config', ['cat' => 'test', 'k' => 'inc', 'v' => 0]));
32                 self::assertTrue($db->update('config', ["`v` = `v` + 1"], ['cat' => 'test', 'k' => 'inc']));
33                 self::assertEquals(1, $db->selectFirst('config', ['v'], ['cat' => 'test', 'k' => 'inc'])['v']);
34         }
35
36         /**
37          * Test if combining directly field updates with normal updates is working
38          */
39         public function testUpdateWithField()
40         {
41                 $db = $this->getDbInstance();
42
43                 self::assertEquals('https://friendica.local', $db->selectFirst('gserver', ['url'], ['nurl' => 'http://friendica.local'])['url']);
44                 self::assertTrue($db->update('gserver', ['active-week-users' => 0], ['nurl' => 'http://friendica.local']));
45                 self::assertTrue($db->update('gserver', ['site_name' => 'test', "`registered-users` = `registered-users` + 1", 'info' => 'another test', "`active-week-users` = `active-week-users` + 2"], ['nurl' => 'http://friendica.local']));
46                 self::assertEquals(1, $db->selectFirst('gserver', ['registered-users'], ['nurl' => 'http://friendica.local'])['registered-users']);
47                 self::assertEquals(2, $db->selectFirst('gserver', ['active-week-users'], ['nurl' => 'http://friendica.local'])['active-week-users']);
48                 self::assertTrue($db->update('gserver', ['site_name' => 'test', "`registered-users` = `registered-users` + 1", 'info' => 'another test'], ['nurl' => 'http://friendica.local']));
49                 self::assertEquals(2, $db->selectFirst('gserver', ['registered-users'], ['nurl' => 'http://friendica.local'])['registered-users']);
50                 self::assertTrue($db->update('gserver', ['site_name' => 'test', "`registered-users` = `registered-users` - 1", 'info' => 'another test'], ['nurl' => 'http://friendica.local']));
51                 self::assertEquals(1, $db->selectFirst('gserver', ['registered-users'], ['nurl' => 'http://friendica.local'])['registered-users']);
52         }
53 }