From 9651860720707fe286b6ef7c0ae995d57044de3b Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sat, 23 May 2026 17:51:34 +0200 Subject: [PATCH] test: add test trait for creating temporary groups Signed-off-by: Robin Appelman --- tests/lib/Traits/GroupTrait.php | 63 +++++++++++++++++++++++++++++++++ tests/lib/Traits/UserTrait.php | 9 ++--- 2 files changed, 66 insertions(+), 6 deletions(-) create mode 100644 tests/lib/Traits/GroupTrait.php diff --git a/tests/lib/Traits/GroupTrait.php b/tests/lib/Traits/GroupTrait.php new file mode 100644 index 00000000000..e3ccdefbd07 --- /dev/null +++ b/tests/lib/Traits/GroupTrait.php @@ -0,0 +1,63 @@ +gid, + [], + Server::get(IEventDispatcher::class), + Server::get(IUserManager::class), + ); + } + + #[\Override] + public function getGID(): string { + return $this->gid; + } +} + +/** + * Allow creating users in a temporary backend + */ +trait GroupTrait { + protected Dummy $groupBackend; + + protected function createGroup(string $name, array $users = []): IGroup { + $this->groupBackend->createGroup($name); + foreach ($users as $user) { + $this->groupBackend->addToGroup($user, $name); + } + return new DummyGroup($name); + } + + protected function addToGroup(string $user, string $group): void { + $this->groupBackend->addToGroup($user, $group); + } + + protected function setUpGroupTrait() { + $this->groupBackend = new Dummy(); + Server::get(IGroupManager::class)->addBackend($this->groupBackend); + } + + protected function tearDownGroupTrait() { + Server::get(IGroupManager::class)->removeBackend($this->groupBackend); + } +} diff --git a/tests/lib/Traits/UserTrait.php b/tests/lib/Traits/UserTrait.php index 67db6b18e52..43b1219677b 100644 --- a/tests/lib/Traits/UserTrait.php +++ b/tests/lib/Traits/UserTrait.php @@ -13,7 +13,7 @@ use OCP\EventDispatcher\IEventDispatcher; use OCP\IUser; use OCP\IUserManager; use OCP\Server; -use OCP\UserInterface; +use Test\Util\User\Dummy; class DummyUser extends User { public function __construct( @@ -32,10 +32,7 @@ class DummyUser extends User { * Allow creating users in a temporary backend */ trait UserTrait { - /** - * @var \Test\Util\User\Dummy|UserInterface - */ - protected $userBackend; + protected Dummy $userBackend; protected function createUser($name, $password): IUser { $this->userBackend->createUser($name, $password); @@ -43,7 +40,7 @@ trait UserTrait { } protected function setUpUserTrait() { - $this->userBackend = new \Test\Util\User\Dummy(); + $this->userBackend = new Dummy(); Server::get(IUserManager::class)->registerBackend($this->userBackend); }