diff options
Diffstat (limited to 'tests/lib/Memcache/FactoryTest.php')
-rw-r--r-- | tests/lib/Memcache/FactoryTest.php | 71 |
1 files changed, 35 insertions, 36 deletions
diff --git a/tests/lib/Memcache/FactoryTest.php b/tests/lib/Memcache/FactoryTest.php index f16f70eddc2..e16e079349f 100644 --- a/tests/lib/Memcache/FactoryTest.php +++ b/tests/lib/Memcache/FactoryTest.php @@ -1,29 +1,18 @@ <?php + /** - * @author Robin McCorkell <rmccorkell@karoshi.org.uk> - * - * @copyright Copyright (c) 2015, ownCloud, Inc. - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * 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, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> - * + * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-only */ namespace Test\Memcache; +use OC\Memcache\Factory; use OC\Memcache\NullCache; -use Psr\Log\LoggerInterface; +use OCP\HintException; use OCP\Profiler\IProfiler; +use Psr\Log\LoggerInterface; class Test_Factory_Available_Cache1 extends NullCache { public function __construct($prefix = '') { @@ -61,43 +50,46 @@ class Test_Factory_Unavailable_Cache2 extends NullCache { } } +/** + * @group Memcache + */ class FactoryTest extends \Test\TestCase { public const AVAILABLE1 = '\\Test\\Memcache\\Test_Factory_Available_Cache1'; public const AVAILABLE2 = '\\Test\\Memcache\\Test_Factory_Available_Cache2'; public const UNAVAILABLE1 = '\\Test\\Memcache\\Test_Factory_Unavailable_Cache1'; public const UNAVAILABLE2 = '\\Test\\Memcache\\Test_Factory_Unavailable_Cache2'; - public function cacheAvailabilityProvider() { + public static function cacheAvailabilityProvider(): array { return [ [ // local and distributed available self::AVAILABLE1, self::AVAILABLE2, null, - self::AVAILABLE1, self::AVAILABLE2, \OC\Memcache\Factory::NULL_CACHE + self::AVAILABLE1, self::AVAILABLE2, Factory::NULL_CACHE ], [ // local and distributed null null, null, null, - \OC\Memcache\Factory::NULL_CACHE, \OC\Memcache\Factory::NULL_CACHE, \OC\Memcache\Factory::NULL_CACHE + Factory::NULL_CACHE, Factory::NULL_CACHE, Factory::NULL_CACHE ], [ // local available, distributed null (most common scenario) self::AVAILABLE1, null, null, - self::AVAILABLE1, self::AVAILABLE1, \OC\Memcache\Factory::NULL_CACHE + self::AVAILABLE1, self::AVAILABLE1, Factory::NULL_CACHE ], [ // locking cache available null, null, self::AVAILABLE1, - \OC\Memcache\Factory::NULL_CACHE, \OC\Memcache\Factory::NULL_CACHE, self::AVAILABLE1 + Factory::NULL_CACHE, Factory::NULL_CACHE, self::AVAILABLE1 ], [ // locking cache unavailable: no exception here in the factory null, null, self::UNAVAILABLE1, - \OC\Memcache\Factory::NULL_CACHE, \OC\Memcache\Factory::NULL_CACHE, \OC\Memcache\Factory::NULL_CACHE + Factory::NULL_CACHE, Factory::NULL_CACHE, Factory::NULL_CACHE ] ]; } - public function cacheUnavailableProvider() { + public static function cacheUnavailableProvider(): array { return [ [ // local available, distributed unavailable @@ -114,27 +106,34 @@ class FactoryTest extends \Test\TestCase { ]; } - /** - * @dataProvider cacheAvailabilityProvider - */ + #[\PHPUnit\Framework\Attributes\DataProvider('cacheAvailabilityProvider')] public function testCacheAvailability($localCache, $distributedCache, $lockingCache, - $expectedLocalCache, $expectedDistributedCache, $expectedLockingCache) { + $expectedLocalCache, $expectedDistributedCache, $expectedLockingCache): void { $logger = $this->getMockBuilder(LoggerInterface::class)->getMock(); $profiler = $this->getMockBuilder(IProfiler::class)->getMock(); - $factory = new \OC\Memcache\Factory('abc', $logger, $profiler, $localCache, $distributedCache, $lockingCache); + $factory = new Factory(fn () => 'abc', $logger, $profiler, $localCache, $distributedCache, $lockingCache); $this->assertTrue(is_a($factory->createLocal(), $expectedLocalCache)); $this->assertTrue(is_a($factory->createDistributed(), $expectedDistributedCache)); $this->assertTrue(is_a($factory->createLocking(), $expectedLockingCache)); } - /** - * @dataProvider cacheUnavailableProvider - */ - public function testCacheNotAvailableException($localCache, $distributedCache) { - $this->expectException(\OCP\HintException::class); + #[\PHPUnit\Framework\Attributes\DataProvider('cacheUnavailableProvider')] + public function testCacheNotAvailableException($localCache, $distributedCache): void { + $this->expectException(HintException::class); $logger = $this->getMockBuilder(LoggerInterface::class)->getMock(); $profiler = $this->getMockBuilder(IProfiler::class)->getMock(); - new \OC\Memcache\Factory('abc', $logger, $profiler, $localCache, $distributedCache); + new Factory(fn () => 'abc', $logger, $profiler, $localCache, $distributedCache); + } + + public function testCreateInMemory(): void { + $logger = $this->getMockBuilder(LoggerInterface::class)->getMock(); + $profiler = $this->getMockBuilder(IProfiler::class)->getMock(); + $factory = new Factory(fn () => 'abc', $logger, $profiler, null, null, null); + + $cache = $factory->createInMemory(); + $cache->set('test', 48); + + self::assertSame(48, $cache->get('test')); } } |