diff options
Diffstat (limited to 'tests/lib/Traits/UserTrait.php')
-rw-r--r-- | tests/lib/Traits/UserTrait.php | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/lib/Traits/UserTrait.php b/tests/lib/Traits/UserTrait.php new file mode 100644 index 00000000000..f80adb76be8 --- /dev/null +++ b/tests/lib/Traits/UserTrait.php @@ -0,0 +1,52 @@ +<?php + +/** + * SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +namespace Test\Traits; + +use OC\User\User; +use OCP\EventDispatcher\IEventDispatcher; +use OCP\IUser; +use OCP\IUserManager; +use OCP\Server; +use OCP\UserInterface; + +class DummyUser extends User { + public function __construct( + private string $uid, + ) { + parent::__construct($this->uid, null, Server::get(IEventDispatcher::class)); + } + + public function getUID(): string { + return $this->uid; + } +} + +/** + * Allow creating users in a temporary backend + */ +trait UserTrait { + /** + * @var \Test\Util\User\Dummy|UserInterface + */ + protected $userBackend; + + protected function createUser($name, $password): IUser { + $this->userBackend->createUser($name, $password); + return new DummyUser($name); + } + + protected function setUpUserTrait() { + $this->userBackend = new \Test\Util\User\Dummy(); + Server::get(IUserManager::class)->registerBackend($this->userBackend); + } + + protected function tearDownUserTrait() { + Server::get(IUserManager::class)->removeBackend($this->userBackend); + } +} |