Skip to content

Commit faf66fe

Browse files
committed
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>
1 parent 43f83ed commit faf66fe

6 files changed

Lines changed: 33 additions & 12 deletions

File tree

lib/composer/composer/autoload_classmap.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1024,9 +1024,11 @@
10241024
'OCP\\TaskProcessing\\TaskTypes\\TextToTextSummary' => $baseDir . '/lib/public/TaskProcessing/TaskTypes/TextToTextSummary.php',
10251025
'OCP\\TaskProcessing\\TaskTypes\\TextToTextTopics' => $baseDir . '/lib/public/TaskProcessing/TaskTypes/TextToTextTopics.php',
10261026
'OCP\\TaskProcessing\\TaskTypes\\TextToTextTranslate' => $baseDir . '/lib/public/TaskProcessing/TaskTypes/TextToTextTranslate.php',
1027+
'OCP\\Teams\\ITeamFolderProvider' => $baseDir . '/lib/public/Teams/ITeamFolderProvider.php',
10271028
'OCP\\Teams\\ITeamManager' => $baseDir . '/lib/public/Teams/ITeamManager.php',
10281029
'OCP\\Teams\\ITeamResourceProvider' => $baseDir . '/lib/public/Teams/ITeamResourceProvider.php',
10291030
'OCP\\Teams\\Team' => $baseDir . '/lib/public/Teams/Team.php',
1031+
'OCP\\Teams\\TeamFolder' => $baseDir . '/lib/public/Teams/TeamFolder.php',
10301032
'OCP\\Teams\\TeamResource' => $baseDir . '/lib/public/Teams/TeamResource.php',
10311033
'OCP\\Template' => $baseDir . '/lib/public/Template.php',
10321034
'OCP\\Template\\ITemplate' => $baseDir . '/lib/public/Template/ITemplate.php',

lib/composer/composer/autoload_static.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1065,9 +1065,11 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
10651065
'OCP\\TaskProcessing\\TaskTypes\\TextToTextSummary' => __DIR__ . '/../../..' . '/lib/public/TaskProcessing/TaskTypes/TextToTextSummary.php',
10661066
'OCP\\TaskProcessing\\TaskTypes\\TextToTextTopics' => __DIR__ . '/../../..' . '/lib/public/TaskProcessing/TaskTypes/TextToTextTopics.php',
10671067
'OCP\\TaskProcessing\\TaskTypes\\TextToTextTranslate' => __DIR__ . '/../../..' . '/lib/public/TaskProcessing/TaskTypes/TextToTextTranslate.php',
1068+
'OCP\\Teams\\ITeamFolderProvider' => __DIR__ . '/../../..' . '/lib/public/Teams/ITeamFolderProvider.php',
10681069
'OCP\\Teams\\ITeamManager' => __DIR__ . '/../../..' . '/lib/public/Teams/ITeamManager.php',
10691070
'OCP\\Teams\\ITeamResourceProvider' => __DIR__ . '/../../..' . '/lib/public/Teams/ITeamResourceProvider.php',
10701071
'OCP\\Teams\\Team' => __DIR__ . '/../../..' . '/lib/public/Teams/Team.php',
1072+
'OCP\\Teams\\TeamFolder' => __DIR__ . '/../../..' . '/lib/public/Teams/TeamFolder.php',
10711073
'OCP\\Teams\\TeamResource' => __DIR__ . '/../../..' . '/lib/public/Teams/TeamResource.php',
10721074
'OCP\\Template' => __DIR__ . '/../../..' . '/lib/public/Template.php',
10731075
'OCP\\Template\\ITemplate' => __DIR__ . '/../../..' . '/lib/public/Template/ITemplate.php',

lib/private/Teams/TeamManager.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
use OCA\Circles\Model\Probes\CircleProbe;
1616
use OCP\IURLGenerator;
1717
use OCP\Server;
18-
use OCP\Teams\ITeamManager;
1918
use OCP\Teams\ITeamFolderProvider;
19+
use OCP\Teams\ITeamManager;
2020
use OCP\Teams\ITeamResourceProvider;
2121
use OCP\Teams\Team;
2222
use Psr\Container\ContainerExceptionInterface;

lib/public/Teams/ITeamFolderProvider.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99

1010
namespace OCP\Teams;
1111

12+
use OCP\AppFramework\Attribute\Consumable;
13+
use OCP\AppFramework\Attribute\Implementable;
14+
1215
/**
1316
* Provides the exclusive folder belonging to a team.
1417
*
@@ -17,6 +20,8 @@
1720
*
1821
* @since 35.0.0
1922
*/
23+
#[Consumable(since: '35.0.0')]
24+
#[Implementable(since: '35.0.0')]
2025
interface ITeamFolderProvider extends ITeamResourceProvider {
2126
/**
2227
* Return the folder exclusively linked to the team.

lib/public/Teams/TeamFolder.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,14 @@
99

1010
namespace OCP\Teams;
1111

12+
use OCP\AppFramework\Attribute\Consumable;
13+
1214
/**
1315
* A folder exclusively linked to a team.
1416
*
1517
* @since 35.0.0
1618
*/
19+
#[Consumable(since: '35.0.0')]
1720
class TeamFolder implements \JsonSerializable {
1821
/**
1922
* @since 35.0.0

tests/lib/Teams/TeamManagerTest.php

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,20 @@
1111

1212
use OC\AppFramework\Bootstrap\Coordinator;
1313
use OC\Teams\TeamManager;
14-
use OCA\Circles\CirclesManager;
1514
use OCP\IURLGenerator;
1615
use OCP\Teams\ITeamFolderProvider;
1716
use OCP\Teams\ITeamResourceProvider;
1817
use Test\TestCase;
1918

2019
class TeamManagerTest extends TestCase {
2120
public function testGetTeamFolderProviderReturnsNullWithoutTeamSupport(): void {
22-
$teamManager = $this->createTeamManager(null);
21+
$teamManager = $this->createTeamManager();
2322

2423
$this->assertNull($teamManager->getTeamFolderProvider());
2524
}
2625

2726
public function testGetTeamFolderProviderReturnsNullWithoutFolderProvider(): void {
28-
$teamManager = $this->createTeamManager($this->createMock(CirclesManager::class));
27+
$teamManager = $this->createTeamManager(true);
2928
$this->setProviders($teamManager, [
3029
'other' => $this->createMock(ITeamResourceProvider::class),
3130
]);
@@ -34,7 +33,7 @@ public function testGetTeamFolderProviderReturnsNullWithoutFolderProvider(): voi
3433
}
3534

3635
public function testGetTeamFolderProviderReturnsRegisteredFolderProvider(): void {
37-
$teamManager = $this->createTeamManager($this->createMock(CirclesManager::class));
36+
$teamManager = $this->createTeamManager(true);
3837
$folderProvider = $this->createMock(ITeamFolderProvider::class);
3938
$this->setProviders($teamManager, [
4039
'other' => $this->createMock(ITeamResourceProvider::class),
@@ -44,12 +43,22 @@ public function testGetTeamFolderProviderReturnsRegisteredFolderProvider(): void
4443
$this->assertSame($folderProvider, $teamManager->getTeamFolderProvider());
4544
}
4645

47-
private function createTeamManager(?CirclesManager $circlesManager): TeamManager {
48-
return new TeamManager(
49-
$this->createMock(Coordinator::class),
50-
$this->createMock(IURLGenerator::class),
51-
$circlesManager,
52-
);
46+
private function createTeamManager(bool $hasTeamSupport = false): TeamManager {
47+
return new class($this->createMock(Coordinator::class), $this->createMock(IURLGenerator::class), null, $hasTeamSupport, ) extends TeamManager {
48+
public function __construct(
49+
Coordinator $bootContext,
50+
IURLGenerator $urlGenerator,
51+
null $circlesManager,
52+
private bool $hasTeamSupport,
53+
) {
54+
parent::__construct($bootContext, $urlGenerator, $circlesManager);
55+
}
56+
57+
#[\Override]
58+
public function hasTeamSupport(): bool {
59+
return $this->hasTeamSupport;
60+
}
61+
};
5362
}
5463

5564
/**
@@ -58,4 +67,4 @@ private function createTeamManager(?CirclesManager $circlesManager): TeamManager
5867
private function setProviders(TeamManager $teamManager, array $providers): void {
5968
(new \ReflectionProperty(TeamManager::class, 'providers'))->setValue($teamManager, $providers);
6069
}
61-
}
70+
}

0 commit comments

Comments
 (0)