diff options
Diffstat (limited to 'tests/lib/ServerTest.php')
-rw-r--r-- | tests/lib/ServerTest.php | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/tests/lib/ServerTest.php b/tests/lib/ServerTest.php new file mode 100644 index 00000000000..b070641e856 --- /dev/null +++ b/tests/lib/ServerTest.php @@ -0,0 +1,72 @@ +<?php + +/** + * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-only + */ + +namespace Test; + +use OC\App\AppStore\Fetcher\AppFetcher; +use OC\Config; +use OC\Server; +use OCP\Comments\ICommentsManager; + +/** + * Class Server + * + * @group DB + * + * @package Test + */ +class ServerTest extends \Test\TestCase { + /** @var Server */ + protected $server; + + + protected function setUp(): void { + parent::setUp(); + $config = new Config(\OC::$configDir); + $this->server = new Server('', $config); + } + + public static function dataTestQuery(): array { + return [ + ['\OCP\Activity\IManager', '\OC\Activity\Manager'], + ['\OCP\IConfig', '\OC\AllConfig'], + ['\OCP\IAppConfig', '\OC\AppConfig'], + [AppFetcher::class, AppFetcher::class], + ['\OCP\App\IAppManager', '\OC\App\AppManager'], + ['\OCP\Command\IBus', '\OC\Command\AsyncBus'], + ['\OCP\IAvatarManager', '\OC\Avatar\AvatarManager'], + ]; + } + + /** + * + * @param string $serviceName + * @param string $instanceOf + */ + #[\PHPUnit\Framework\Attributes\DataProvider('dataTestQuery')] + public function testQuery($serviceName, $instanceOf): void { + $this->assertInstanceOf($instanceOf, $this->server->query($serviceName), 'Service "' . $serviceName . '"" did not return the right class'); + } + + public function testGetCertificateManager(): void { + $this->assertInstanceOf('\OC\Security\CertificateManager', $this->server->getCertificateManager(), 'service returned by "getCertificateManager" did not return the right class'); + $this->assertInstanceOf('\OCP\ICertificateManager', $this->server->getCertificateManager(), 'service returned by "getCertificateManager" did not return the right class'); + } + + public function testOverwriteDefaultCommentsManager(): void { + $config = $this->server->getConfig(); + $defaultManagerFactory = $config->getSystemValue('comments.managerFactory', '\OC\Comments\ManagerFactory'); + + $config->setSystemValue('comments.managerFactory', '\Test\Comments\FakeFactory'); + + $manager = $this->server->get(ICommentsManager::class); + $this->assertInstanceOf('\OCP\Comments\ICommentsManager', $manager); + + $config->setSystemValue('comments.managerFactory', $defaultManagerFactory); + } +} |