3 namespace Friendica\Test\src\Security\PermissionSet\Depository;
6 use Friendica\Database\Database;
7 use Friendica\Security\PermissionSet\Depository\PermissionSet as PermissionSetDepository;
8 use Friendica\Security\PermissionSet\Factory\PermissionSet as PermissionSetFactory;
9 use Friendica\Test\DatabaseTest;
10 use Friendica\Test\Util\Database\StaticDatabase;
12 class PermissionSetTest extends DatabaseTest
14 /** @var PermissionSetDepository */
16 /** @var PermissionSetFactory */
21 public function setUp(): void
26 ->addRules(include __DIR__ . '/../../../../../static/dependencies.config.php')
27 ->addRule(Database::class, ['instanceOf' => StaticDatabase::class, 'shared' => true]);
29 $this->depository = $dice->create(PermissionSetDepository::class);
30 $this->factory = $dice->create(PermissionSetFactory::class);
31 $this->dba = $dice->create(Database::class);
34 public function testSelectOneByIdPublic()
36 $permissionSet = $this->depository->selectPublicForUser(1);
38 $this->assertInstanceOf(\Friendica\Security\PermissionSet\Entity\PermissionSet::class, $permissionSet);
39 self::assertEmpty($permissionSet->allow_cid);
40 self::assertEmpty($permissionSet->allow_gid);
41 self::assertEmpty($permissionSet->deny_cid);
42 self::assertEmpty($permissionSet->deny_gid);
43 self::assertEmpty(PermissionSetDepository::PUBLIC, $permissionSet->id);
44 self::assertEquals(1, $permissionSet->uid);
48 * Test create/update PermissionSets
50 public function testSaving()
52 $this->loadFixture(__DIR__ . '/../../../../datasets/api.fixture.php', $this->dba);
54 $permissionSet = $this->factory->createFromString(42, '', '<~>');
56 $permissionSet = $this->depository->selectOrCreate($permissionSet);
58 self::assertNotNull($permissionSet->id);
60 $permissionSetSelected = $this->depository->selectOneById($permissionSet->id, 42);
62 self::assertEquals($permissionSet, $permissionSetSelected);
64 $newPermissionSet = $permissionSet->withAllowedContacts(['1', '2']);
65 $savedPermissionSet = $this->depository->save($newPermissionSet);
67 self::assertNotNull($savedPermissionSet->id);
68 self::assertNull($newPermissionSet->id);
70 $permissionSetSavedSelected = $this->depository->selectOneById($savedPermissionSet->id, 42);
72 self::assertEquals($savedPermissionSet, $permissionSetSavedSelected);