|
5 | 5 | namespace Fschmtt\Keycloak\Test\Unit\Resource;
|
6 | 6 |
|
7 | 7 | use Fschmtt\Keycloak\Collection\GroupCollection;
|
| 8 | +use Fschmtt\Keycloak\Collection\UserCollection; |
8 | 9 | use Fschmtt\Keycloak\Http\Command;
|
9 | 10 | use Fschmtt\Keycloak\Http\CommandExecutor;
|
10 | 11 | use Fschmtt\Keycloak\Http\Method;
|
11 | 12 | use Fschmtt\Keycloak\Http\Query;
|
12 | 13 | use Fschmtt\Keycloak\Http\QueryExecutor;
|
13 | 14 | use Fschmtt\Keycloak\Representation\Group;
|
| 15 | +use Fschmtt\Keycloak\Representation\User; |
14 | 16 | use Fschmtt\Keycloak\Resource\Groups;
|
15 | 17 | use PHPUnit\Framework\Attributes\CoversClass;
|
16 | 18 | use PHPUnit\Framework\TestCase;
|
@@ -214,4 +216,56 @@ public function testDeleteGroup(): void
|
214 | 216 |
|
215 | 217 | $groups->delete('realm-with-groups', $group->getId());
|
216 | 218 | }
|
| 219 | + |
| 220 | + public function testByPath(): void |
| 221 | + { |
| 222 | + $query = new Query( |
| 223 | + '/admin/realms/{realm}/group-by-path/{path}', |
| 224 | + Group::class, |
| 225 | + [ |
| 226 | + 'realm' => 'realm-with-groups', |
| 227 | + 'path' => 'path/to/group', |
| 228 | + ], |
| 229 | + ); |
| 230 | + |
| 231 | + $queryExecutor = $this->createMock(QueryExecutor::class); |
| 232 | + $queryExecutor->expects(static::once()) |
| 233 | + ->method('executeQuery') |
| 234 | + ->with($query) |
| 235 | + ->willReturn(new Group(id: 'group-1')); |
| 236 | + |
| 237 | + $groups = new Groups( |
| 238 | + $this->createMock(CommandExecutor::class), |
| 239 | + $queryExecutor, |
| 240 | + ); |
| 241 | + |
| 242 | + $group = $groups->byPath('realm-with-groups', 'path/to/group'); |
| 243 | + static::assertSame('group-1', $group->getId()); |
| 244 | + } |
| 245 | + |
| 246 | + public function testMembers(): void |
| 247 | + { |
| 248 | + $query = new Query( |
| 249 | + '/admin/realms/{realm}/groups/{groupId}/members', |
| 250 | + UserCollection::class, |
| 251 | + [ |
| 252 | + 'realm' => 'realm-with-groups', |
| 253 | + 'groupId' => 'group-1', |
| 254 | + ], |
| 255 | + ); |
| 256 | + |
| 257 | + $queryExecutor = $this->createMock(QueryExecutor::class); |
| 258 | + $queryExecutor->expects(static::once()) |
| 259 | + ->method('executeQuery') |
| 260 | + ->with($query) |
| 261 | + ->willReturn(new UserCollection([new User(id: 'user-1')])); |
| 262 | + |
| 263 | + $groups = new Groups( |
| 264 | + $this->createMock(CommandExecutor::class), |
| 265 | + $queryExecutor, |
| 266 | + ); |
| 267 | + |
| 268 | + $members = $groups->members('realm-with-groups', 'group-1'); |
| 269 | + static::assertCount(1, $members); |
| 270 | + } |
217 | 271 | }
|
0 commit comments