Skip to content

Commit 9791084

Browse files
committed
test(admin_audit): add test for user management listener
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
1 parent bec14dc commit 9791084

File tree

1 file changed

+92
-0
lines changed

1 file changed

+92
-0
lines changed
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
/**
5+
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
6+
* SPDX-License-Identifier: AGPL-3.0-or-later
7+
*/
8+
namespace OCA\AdminAudit\Tests\Actions;
9+
10+
use OCA\AdminAudit\IAuditLogger;
11+
use OCA\AdminAudit\Listener\UserManagementEventListener;
12+
use OCP\IUser;
13+
use OCP\User\Events\UserChangedEvent;
14+
use PHPUnit\Framework\MockObject\MockObject;
15+
use Test\TestCase;
16+
17+
class UserManagementEventListenerTest extends TestCase {
18+
private IAuditLogger|MockObject $logger;
19+
20+
private UserManagementEventListener $listener;
21+
22+
private MockObject|IUser $user;
23+
24+
protected function setUp(): void {
25+
parent::setUp();
26+
27+
$this->logger = $this->createMock(IAuditLogger::class);
28+
$this->listener = new UserManagementEventListener($this->logger);
29+
30+
$this->user = $this->createMock(IUser::class);
31+
$this->user->method('getUID')->willReturn('alice');
32+
$this->user->method('getDisplayName')->willReturn('Alice');
33+
}
34+
35+
public function testSkipUnsupported(): void {
36+
$this->logger->expects($this->never())
37+
->method('info');
38+
39+
$event = new UserChangedEvent(
40+
$this->user,
41+
'unsupported',
42+
'value',
43+
);
44+
45+
$this->listener->handle($event);
46+
}
47+
48+
public function testUserEnabled(): void {
49+
$this->logger->expects($this->once())
50+
->method('info')
51+
->with('User enabled: "alice"', ['app' => 'admin_audit']);
52+
53+
$event = new UserChangedEvent(
54+
$this->user,
55+
'enabled',
56+
true,
57+
false,
58+
);
59+
60+
$this->listener->handle($event);
61+
}
62+
63+
public function testUserDisabled(): void {
64+
$this->logger->expects($this->once())
65+
->method('info')
66+
->with('User disabled: "alice"', ['app' => 'admin_audit']);
67+
68+
$event = new UserChangedEvent(
69+
$this->user,
70+
'enabled',
71+
false,
72+
true,
73+
);
74+
75+
$this->listener->handle($event);
76+
}
77+
78+
public function testEmailChanged(): void {
79+
$this->logger->expects($this->once())
80+
->method('info')
81+
->with('Email address changed for user alice', ['app' => 'admin_audit']);
82+
83+
$event = new UserChangedEvent(
84+
$this->user,
85+
'eMailAddress',
86+
'alice@alice.com',
87+
'',
88+
);
89+
90+
$this->listener->handle($event);
91+
}
92+
}

0 commit comments

Comments
 (0)