ILIAS  trunk Revision v13.0_alpha-62-g3b72d83f2e5
AuthenticatedSubjectPurgeTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
27use PHPUnit\Framework\MockObject\MockObject;
28use PHPUnit\Framework\TestCase;
29
30class AuthenticatedSubjectPurgeTest extends TestCase
31{
33 {
34 $storage = $this->createMock(Services::class);
35 $storage->expects($this->once())
36 ->method('purgeSubject')
37 ->with($this->callback(
38 static fn(SubjectId $subject): bool => $subject->provider() === AuthenticatedUserSubjectProvider::NAME
39 && $subject->id() === '42'
40 ));
41
42 (new AuthenticatedSubjectPurge($storage, new AuthenticatedUserSubjectProvider()))->purgeForUserId(42);
43 }
44
45 public function testZeroDoesNotPurge(): void
46 {
47 $storage = $this->storageThatIsNeverCalled();
48
49 (new AuthenticatedSubjectPurge($storage, new AuthenticatedUserSubjectProvider()))->purgeForUserId(0);
50 }
51
52 public function testANegativeUserIdDoesNotPurge(): void
53 {
54 $storage = $this->storageThatIsNeverCalled();
55
56 (new AuthenticatedSubjectPurge($storage, new AuthenticatedUserSubjectProvider()))->purgeForUserId(-1);
57 }
58
59 private function storageThatIsNeverCalled(): Services&MockObject
60 {
61 $storage = $this->createMock(Services::class);
62 $storage->expects($this->never())->method($this->anything());
63
64 return $storage;
65 }
66}
Names the fully authenticated ILIAS users as KeyValueStorage subjects; the subject id is the user id.
Identifies a subject within the provider that names it.
Definition: SubjectId.php:30
Entry point to the namespace-scoped key-value storages of ILIAS.
Definition: Services.php:34