From 725872c23a82a31026504e052cfff83bc4d6cceb Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Wed, 8 Jul 2020 19:38:26 +0200 Subject: Make the subscription registry lazy This will allow to do lazy registration here which should allow for loading less (or at least only when needed!). Signed-off-by: Roeland Jago Douma --- tests/lib/Support/Subscription/RegistryTest.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/lib/Support/Subscription/RegistryTest.php b/tests/lib/Support/Subscription/RegistryTest.php index 3e316792682..2548cfe817f 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); -- cgit v1.2.3 From d9f5fdb67a1f06f19d505d7ee76e05163af7e6ce Mon Sep 17 00:00:00 2001 From: Daniel Kesselberg Date: Wed, 8 Jul 2020 21:45:08 +0200 Subject: Add DummySubscription for tests Signed-off-by: Daniel Kesselberg --- .../lib/Support/Subscription/DummySubscription.php | 58 ++++++++++++++++++++++ tests/lib/Support/Subscription/RegistryTest.php | 10 ++++ 2 files changed, 68 insertions(+) create mode 100644 tests/lib/Support/Subscription/DummySubscription.php (limited to 'tests') 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 @@ + + * + * @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 . + * + */ + +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 2548cfe817f..68159aa1b2b 100644 --- a/tests/lib/Support/Subscription/RegistryTest.php +++ b/tests/lib/Support/Subscription/RegistryTest.php @@ -117,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()); + } } -- cgit v1.2.3