diff options
author | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2024-10-02 11:25:36 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-02 11:25:36 +0200 |
commit | b3ca5b51711408ca25a4a4da56c820f923f6103b (patch) | |
tree | 6e3e148a88a850d4e37daaee68ff07229a958ed0 | |
parent | 7cc1b2a1025f3e4d54bbc47dfb1ebcc3552b444f (diff) | |
parent | 5cf67c280f4e36832429a0df5bdbda6108047982 (diff) | |
download | nextcloud-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.php | 92 |
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); + } +} |