aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2024-10-02 11:25:36 +0200
committerGitHub <noreply@github.com>2024-10-02 11:25:36 +0200
commitb3ca5b51711408ca25a4a4da56c820f923f6103b (patch)
tree6e3e148a88a850d4e37daaee68ff07229a958ed0
parent7cc1b2a1025f3e4d54bbc47dfb1ebcc3552b444f (diff)
parent5cf67c280f4e36832429a0df5bdbda6108047982 (diff)
downloadnextcloud-server-b3ca5b51711408ca25a4a4da56c820f923f6103b.tar.gz
nextcloud-server-b3ca5b51711408ca25a4a4da56c820f923f6103b.zip
Merge pull request #47414 from nextcloud/debt/noid/user-changed-event
test(admin_audit): add test for user management listener
-rw-r--r--apps/admin_audit/tests/Listener/UserManagementEventListenerTest.php92
1 files changed, 92 insertions, 0 deletions
diff --git a/apps/admin_audit/tests/Listener/UserManagementEventListenerTest.php b/apps/admin_audit/tests/Listener/UserManagementEventListenerTest.php
new file mode 100644
index 00000000000..c8cb0281113
--- /dev/null
+++ b/apps/admin_audit/tests/Listener/UserManagementEventListenerTest.php
@@ -0,0 +1,92 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\AdminAudit\Tests\Actions;
+
+use OCA\AdminAudit\IAuditLogger;
+use OCA\AdminAudit\Listener\UserManagementEventListener;
+use OCP\IUser;
+use OCP\User\Events\UserChangedEvent;
+use PHPUnit\Framework\MockObject\MockObject;
+use Test\TestCase;
+
+class UserManagementEventListenerTest extends TestCase {
+ private IAuditLogger&MockObject $logger;
+
+ private UserManagementEventListener $listener;
+
+ private MockObject&IUser $user;
+
+ protected function setUp(): void {
+ parent::setUp();
+
+ $this->logger = $this->createMock(IAuditLogger::class);
+ $this->listener = new UserManagementEventListener($this->logger);
+
+ $this->user = $this->createMock(IUser::class);
+ $this->user->method('getUID')->willReturn('alice');
+ $this->user->method('getDisplayName')->willReturn('Alice');
+ }
+
+ public function testSkipUnsupported(): void {
+ $this->logger->expects($this->never())
+ ->method('info');
+
+ $event = new UserChangedEvent(
+ $this->user,
+ 'unsupported',
+ 'value',
+ );
+
+ $this->listener->handle($event);
+ }
+
+ public function testUserEnabled(): void {
+ $this->logger->expects($this->once())
+ ->method('info')
+ ->with('User enabled: "alice"', ['app' => 'admin_audit']);
+
+ $event = new UserChangedEvent(
+ $this->user,
+ 'enabled',
+ true,
+ false,
+ );
+
+ $this->listener->handle($event);
+ }
+
+ public function testUserDisabled(): void {
+ $this->logger->expects($this->once())
+ ->method('info')
+ ->with('User disabled: "alice"', ['app' => 'admin_audit']);
+
+ $event = new UserChangedEvent(
+ $this->user,
+ 'enabled',
+ false,
+ true,
+ );
+
+ $this->listener->handle($event);
+ }
+
+ public function testEmailChanged(): void {
+ $this->logger->expects($this->once())
+ ->method('info')
+ ->with('Email address changed for user alice', ['app' => 'admin_audit']);
+
+ $event = new UserChangedEvent(
+ $this->user,
+ 'eMailAddress',
+ 'alice@alice.com',
+ '',
+ );
+
+ $this->listener->handle($event);
+ }
+}