fix(teams): add consumable and implementable annotations

fix: tests for TeamFolderProvider and TeamManager
Assisted-by: GitHub Copilot:GPT-5.6 Terra

Signed-off-by: Stefan Dietrich <5716289+stediefan@users.noreply.github.com>
pull/62476/head
Stefan Dietrich 3 weeks ago
parent 43f83ed3c9
commit faf66fef7b
  1. 2
      lib/composer/composer/autoload_classmap.php
  2. 2
      lib/composer/composer/autoload_static.php
  3. 2
      lib/private/Teams/TeamManager.php
  4. 5
      lib/public/Teams/ITeamFolderProvider.php
  5. 3
      lib/public/Teams/TeamFolder.php
  6. 31
      tests/lib/Teams/TeamManagerTest.php

@ -1024,9 +1024,11 @@ return array(
'OCP\\TaskProcessing\\TaskTypes\\TextToTextSummary' => $baseDir . '/lib/public/TaskProcessing/TaskTypes/TextToTextSummary.php',
'OCP\\TaskProcessing\\TaskTypes\\TextToTextTopics' => $baseDir . '/lib/public/TaskProcessing/TaskTypes/TextToTextTopics.php',
'OCP\\TaskProcessing\\TaskTypes\\TextToTextTranslate' => $baseDir . '/lib/public/TaskProcessing/TaskTypes/TextToTextTranslate.php',
'OCP\\Teams\\ITeamFolderProvider' => $baseDir . '/lib/public/Teams/ITeamFolderProvider.php',
'OCP\\Teams\\ITeamManager' => $baseDir . '/lib/public/Teams/ITeamManager.php',
'OCP\\Teams\\ITeamResourceProvider' => $baseDir . '/lib/public/Teams/ITeamResourceProvider.php',
'OCP\\Teams\\Team' => $baseDir . '/lib/public/Teams/Team.php',
'OCP\\Teams\\TeamFolder' => $baseDir . '/lib/public/Teams/TeamFolder.php',
'OCP\\Teams\\TeamResource' => $baseDir . '/lib/public/Teams/TeamResource.php',
'OCP\\Template' => $baseDir . '/lib/public/Template.php',
'OCP\\Template\\ITemplate' => $baseDir . '/lib/public/Template/ITemplate.php',

@ -1065,9 +1065,11 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
'OCP\\TaskProcessing\\TaskTypes\\TextToTextSummary' => __DIR__ . '/../../..' . '/lib/public/TaskProcessing/TaskTypes/TextToTextSummary.php',
'OCP\\TaskProcessing\\TaskTypes\\TextToTextTopics' => __DIR__ . '/../../..' . '/lib/public/TaskProcessing/TaskTypes/TextToTextTopics.php',
'OCP\\TaskProcessing\\TaskTypes\\TextToTextTranslate' => __DIR__ . '/../../..' . '/lib/public/TaskProcessing/TaskTypes/TextToTextTranslate.php',
'OCP\\Teams\\ITeamFolderProvider' => __DIR__ . '/../../..' . '/lib/public/Teams/ITeamFolderProvider.php',
'OCP\\Teams\\ITeamManager' => __DIR__ . '/../../..' . '/lib/public/Teams/ITeamManager.php',
'OCP\\Teams\\ITeamResourceProvider' => __DIR__ . '/../../..' . '/lib/public/Teams/ITeamResourceProvider.php',
'OCP\\Teams\\Team' => __DIR__ . '/../../..' . '/lib/public/Teams/Team.php',
'OCP\\Teams\\TeamFolder' => __DIR__ . '/../../..' . '/lib/public/Teams/TeamFolder.php',
'OCP\\Teams\\TeamResource' => __DIR__ . '/../../..' . '/lib/public/Teams/TeamResource.php',
'OCP\\Template' => __DIR__ . '/../../..' . '/lib/public/Template.php',
'OCP\\Template\\ITemplate' => __DIR__ . '/../../..' . '/lib/public/Template/ITemplate.php',

@ -15,8 +15,8 @@ use OCA\Circles\Model\Member;
use OCA\Circles\Model\Probes\CircleProbe;
use OCP\IURLGenerator;
use OCP\Server;
use OCP\Teams\ITeamManager;
use OCP\Teams\ITeamFolderProvider;
use OCP\Teams\ITeamManager;
use OCP\Teams\ITeamResourceProvider;
use OCP\Teams\Team;
use Psr\Container\ContainerExceptionInterface;

@ -9,6 +9,9 @@ declare(strict_types=1);
namespace OCP\Teams;
use OCP\AppFramework\Attribute\Consumable;
use OCP\AppFramework\Attribute\Implementable;
/**
* Provides the exclusive folder belonging to a team.
*
@ -17,6 +20,8 @@ namespace OCP\Teams;
*
* @since 35.0.0
*/
#[Consumable(since: '35.0.0')]
#[Implementable(since: '35.0.0')]
interface ITeamFolderProvider extends ITeamResourceProvider {
/**
* Return the folder exclusively linked to the team.

@ -9,11 +9,14 @@ declare(strict_types=1);
namespace OCP\Teams;
use OCP\AppFramework\Attribute\Consumable;
/**
* A folder exclusively linked to a team.
*
* @since 35.0.0
*/
#[Consumable(since: '35.0.0')]
class TeamFolder implements \JsonSerializable {
/**
* @since 35.0.0

@ -11,7 +11,6 @@ namespace Test\Teams;
use OC\AppFramework\Bootstrap\Coordinator;
use OC\Teams\TeamManager;
use OCA\Circles\CirclesManager;
use OCP\IURLGenerator;
use OCP\Teams\ITeamFolderProvider;
use OCP\Teams\ITeamResourceProvider;
@ -19,13 +18,13 @@ use Test\TestCase;
class TeamManagerTest extends TestCase {
public function testGetTeamFolderProviderReturnsNullWithoutTeamSupport(): void {
$teamManager = $this->createTeamManager(null);
$teamManager = $this->createTeamManager();
$this->assertNull($teamManager->getTeamFolderProvider());
}
public function testGetTeamFolderProviderReturnsNullWithoutFolderProvider(): void {
$teamManager = $this->createTeamManager($this->createMock(CirclesManager::class));
$teamManager = $this->createTeamManager(true);
$this->setProviders($teamManager, [
'other' => $this->createMock(ITeamResourceProvider::class),
]);
@ -34,7 +33,7 @@ class TeamManagerTest extends TestCase {
}
public function testGetTeamFolderProviderReturnsRegisteredFolderProvider(): void {
$teamManager = $this->createTeamManager($this->createMock(CirclesManager::class));
$teamManager = $this->createTeamManager(true);
$folderProvider = $this->createMock(ITeamFolderProvider::class);
$this->setProviders($teamManager, [
'other' => $this->createMock(ITeamResourceProvider::class),
@ -44,12 +43,22 @@ class TeamManagerTest extends TestCase {
$this->assertSame($folderProvider, $teamManager->getTeamFolderProvider());
}
private function createTeamManager(?CirclesManager $circlesManager): TeamManager {
return new TeamManager(
$this->createMock(Coordinator::class),
$this->createMock(IURLGenerator::class),
$circlesManager,
);
private function createTeamManager(bool $hasTeamSupport = false): TeamManager {
return new class($this->createMock(Coordinator::class), $this->createMock(IURLGenerator::class), null, $hasTeamSupport, ) extends TeamManager {
public function __construct(
Coordinator $bootContext,
IURLGenerator $urlGenerator,
null $circlesManager,
private bool $hasTeamSupport,
) {
parent::__construct($bootContext, $urlGenerator, $circlesManager);
}
#[\Override]
public function hasTeamSupport(): bool {
return $this->hasTeamSupport;
}
};
}
/**
@ -58,4 +67,4 @@ class TeamManagerTest extends TestCase {
private function setProviders(TeamManager $teamManager, array $providers): void {
(new \ReflectionProperty(TeamManager::class, 'providers'))->setValue($teamManager, $providers);
}
}
}

Loading…
Cancel
Save