diff options
author | Roeland Jago Douma <rullzer@users.noreply.github.com> | 2020-07-09 15:43:48 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-09 15:43:48 +0200 |
commit | 10d862e243a00b5ad0d540ade3dbabc6b543da8c (patch) | |
tree | de850d7db58f87817262a42c3b3aed6cd1e8090c /tests | |
parent | 18acb137d3b973f04ee039fd4a4e8ed1bca25127 (diff) | |
parent | d9f5fdb67a1f06f19d505d7ee76e05163af7e6ce (diff) | |
download | nextcloud-server-10d862e243a00b5ad0d540ade3dbabc6b543da8c.tar.gz nextcloud-server-10d862e243a00b5ad0d540ade3dbabc6b543da8c.zip |
Merge pull request #21759 from nextcloud/enh/lazy_subscription
Make the subscription registry lazy
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lib/Support/Subscription/DummySubscription.php | 58 | ||||
-rw-r--r-- | tests/lib/Support/Subscription/RegistryTest.php | 19 |
2 files changed, 75 insertions, 2 deletions
diff --git a/tests/lib/Support/Subscription/DummySubscription.php b/tests/lib/Support/Subscription/DummySubscription.php new file mode 100644 index 00000000000..e1f7f5c6b61 --- /dev/null +++ b/tests/lib/Support/Subscription/DummySubscription.php @@ -0,0 +1,58 @@ +<?php + +declare(strict_types=1); + +/** + * @author Daniel Kesselberg <mail@danielkesselberg.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace Test\Support\Subscription; + +class DummySubscription implements \OCP\Support\Subscription\ISubscription { + + /** @var bool */ + private $hasValidSubscription; + /** @var bool */ + private $hasExtendedSupport; + + /** + * DummySubscription constructor. + * + * @param bool $hasValidSubscription + * @param bool $hasExtendedSupport + */ + public function __construct(bool $hasValidSubscription, bool $hasExtendedSupport) { + $this->hasValidSubscription = $hasValidSubscription; + $this->hasExtendedSupport = $hasExtendedSupport; + } + + /** + * @inheritDoc + */ + public function hasValidSubscription(): bool { + return $this->hasValidSubscription; + } + + /** + * @inheritDoc + */ + public function hasExtendedSupport(): bool { + return $this->hasExtendedSupport; + } +} diff --git a/tests/lib/Support/Subscription/RegistryTest.php b/tests/lib/Support/Subscription/RegistryTest.php index 3e316792682..68159aa1b2b 100644 --- a/tests/lib/Support/Subscription/RegistryTest.php +++ b/tests/lib/Support/Subscription/RegistryTest.php @@ -24,6 +24,7 @@ namespace Test\Support\Subscription; use OC\Support\Subscription\Registry; use OCP\IConfig; +use OCP\IServerContainer; use OCP\Support\Subscription\ISubscription; use OCP\Support\Subscription\ISupportedApps; use PHPUnit\Framework\MockObject\MockObject; @@ -37,11 +38,15 @@ class RegistryTest extends TestCase { /** @var MockObject|IConfig */ private $config; + /** @var MockObject|IServerContainer */ + private $serverContainer; + protected function setUp(): void { parent::setUp(); $this->config = $this->createMock(IConfig::class); - $this->registry = new Registry($this->config); + $this->serverContainer = $this->createMock(IServerContainer::class); + $this->registry = new Registry($this->config, $this->serverContainer); } /** @@ -52,7 +57,7 @@ class RegistryTest extends TestCase { $this->addToAssertionCount(1); } - + public function testDoubleRegistration() { $this->expectException(\OCP\Support\Subscription\Exception\AlreadyRegisteredException::class); @@ -112,4 +117,14 @@ class RegistryTest extends TestCase { $this->assertSame(['abc'], $this->registry->delegateGetSupportedApps()); } + + public function testSubscriptionService() { + $this->serverContainer->method('query') + ->with(DummySubscription::class) + ->willReturn(new DummySubscription(true, false)); + $this->registry->registerService(DummySubscription::class); + + $this->assertTrue($this->registry->delegateHasValidSubscription()); + $this->assertFalse($this->registry->delegateHasExtendedSupport()); + } } |