aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/ServerTest.php
blob: eb9b1dab9f5220c134c48bfc9c467a3ba9b6fa03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?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 OCP\Comments\ICommentsManager;

/**
 * Class Server
 *
 * @group DB
 *
 * @package Test
 */
class ServerTest extends \Test\TestCase {
	/** @var \OC\Server */
	protected $server;


	protected function setUp(): void {
		parent::setUp();
		$config = new \OC\Config(\OC::$configDir);
		$this->server = new \OC\Server('', $config);
	}

	public function dataTestQuery() {
		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'],
		];
	}

	/**
	 * @dataProvider dataTestQuery
	 *
	 * @param string $serviceName
	 * @param string $instanceOf
	 */
	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);
	}
}