aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/Traits/UserTrait.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/Traits/UserTrait.php')
-rw-r--r--tests/lib/Traits/UserTrait.php52
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);
+ }
+}