‪TYPO3CMS  ‪main
GroupResolverTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
20 use PHPUnit\Framework\Attributes\DataProvider;
21 use PHPUnit\Framework\Attributes\Test;
24 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
25 
26 final class ‪GroupResolverTest extends FunctionalTestCase
27 {
28  public function ‪setUp(): void
29  {
30  parent::setUp();
31  $this->importCSVDataSet(__DIR__ . '/Fixtures/be_users.csv');
32  $this->importCSVDataSet(__DIR__ . '/Fixtures/be_groups.csv');
33  }
34 
36  {
37  return [
38  'invalid group' => [
39  [238],
40  [],
41  ],
42  'direct group with multiple users' => [
43  [1],
44  [2, 3, 6],
45  ],
46  'direct group with one users' => [
47  [4],
48  [3],
49  ],
50  'direct and indirect subgroup with one users' => [
51  [2],
52  [3],
53  ],
54  'subgroup with no direct reference' => [
55  [5],
56  [3],
57  ],
58  'subgroup and direct with no direct reference' => [
59  [5, 2, 3],
60  [3],
61  ],
62  'no group given' => [
63  [],
64  [],
65  ],
66  ];
67  }
68 
72  #[DataProvider('findAllUsersOfGroupsHandlesRecursiveCallsDataProvider')]
73  #[Test]
74  public function ‪findAllUsersOfGroupsHandlesRecursiveCalls(array $groupIds, array $expectedUsers): void
75  {
76  $subject = GeneralUtility::makeInstance(GroupResolver::class);
77  $users = $subject->findAllUsersInGroups($groupIds, 'be_groups', 'be_users');
78  self::assertEquals($expectedUsers, array_map(intval(...), array_column($users, 'uid')));
79  }
80 }
‪TYPO3\CMS\Core\Tests\Functional\Authentication\GroupResolverTest\findAllUsersOfGroupsHandlesRecursiveCalls
‪findAllUsersOfGroupsHandlesRecursiveCalls(array $groupIds, array $expectedUsers)
Definition: GroupResolverTest.php:74
‪TYPO3\CMS\Core\Tests\Functional\Authentication\GroupResolverTest\setUp
‪setUp()
Definition: GroupResolverTest.php:28
‪TYPO3\CMS\Core\Tests\Functional\Authentication
Definition: AbstractUserAuthenticationTest.php:18
‪TYPO3\CMS\Core\Authentication\GroupResolver
Definition: GroupResolver.php:36
‪TYPO3\CMS\Core\Tests\Functional\Authentication\GroupResolverTest\findAllUsersOfGroupsHandlesRecursiveCallsDataProvider
‪static findAllUsersOfGroupsHandlesRecursiveCallsDataProvider()
Definition: GroupResolverTest.php:35
‪TYPO3\CMS\Core\Tests\Functional\Authentication\GroupResolverTest
Definition: GroupResolverTest.php:27
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:52