From f19caca0edb684d41dfd61bbefaf3b49f10b3c3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20B=C3=B6sing?= <2189546+boesing@users.noreply.github.com> Date: Fri, 19 Jan 2024 22:17:18 +0100 Subject: [PATCH] qa: remove virtual package dependency of `laminas/laminas-cache-storage-implementation` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `laminas/laminas-cache` can be required by libraries, etc. without having to care about specific implementations. To avoid those libraries to have to require at least one specific implementation during development, the virtual package dependency is being removed. Virtual package dependencies should be moved into projects rather than libraries. Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com> --- composer.json | 8 ---- composer.lock | 23 +--------- dev-implementation/README.md | 4 -- dev-implementation/VoidAdapter.php | 36 --------------- dev-implementation/composer.json | 13 ------ phpcs.xml | 1 - psalm-baseline.xml | 14 ------ psalm.xml | 1 - .../AdapterPluginManagerTypes.php | 6 +-- test/Storage/CapabilitiesTest.php | 46 +++++++++++-------- .../EventsCapableStorageInterface.php | 12 +++++ 11 files changed, 42 insertions(+), 122 deletions(-) delete mode 100644 dev-implementation/README.md delete mode 100644 dev-implementation/VoidAdapter.php delete mode 100644 dev-implementation/composer.json create mode 100644 test/Storage/TestAsset/EventsCapableStorageInterface.php diff --git a/composer.json b/composer.json index b2b580c5..f07652a6 100644 --- a/composer.json +++ b/composer.json @@ -35,7 +35,6 @@ }, "require": { "php": "~8.1.0 || ~8.2.0 || ~8.3.0", - "laminas/laminas-cache-storage-implementation": "2.0", "laminas/laminas-eventmanager": "^3.4", "laminas/laminas-servicemanager": "^3.21", "laminas/laminas-stdlib": "^3.6", @@ -45,7 +44,6 @@ "webmozart/assert": "^1.9" }, "require-dev": { - "laminas/laminas-cache-storage-adapter-dev": "^1.0", "laminas/laminas-cli": "^1.7", "laminas/laminas-coding-standard": "~2.5.0", "laminas/laminas-config-aggregator": "^1.13", @@ -84,12 +82,6 @@ "LaminasTest\\Cache\\": "test/" } }, - "repositories": [ - { - "type": "path", - "url": "./dev-implementation" - } - ], "scripts": { "check": [ "@cs-check", diff --git a/composer.lock b/composer.lock index 31f1f256..e371f5ac 100644 --- a/composer.lock +++ b/composer.lock @@ -4,29 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "15e7e51ef0274a7fb351136e6e7f18c8", + "content-hash": "651d79d2dbba70a86ca7703cbab99304", "packages": [ - { - "name": "laminas/laminas-cache-storage-adapter-dev", - "version": "1.0", - "dist": { - "type": "path", - "url": "./dev-implementation", - "reference": "4b24ab5251f0758c31e931a1201c27c8af257ced" - }, - "provide": { - "laminas/laminas-cache-storage-implementation": "2.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Laminas\\Cache\\Storage\\Adapter\\Dev\\": "." - } - }, - "transport-options": { - "relative": true - } - }, { "name": "laminas/laminas-eventmanager", "version": "3.10.0", diff --git a/dev-implementation/README.md b/dev-implementation/README.md deleted file mode 100644 index 9a3a596e..00000000 --- a/dev-implementation/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# README - -This package is meant to provide a cache implementation for development. -By adding this as a dev-dependency, we get rid of the circular dependencies. diff --git a/dev-implementation/VoidAdapter.php b/dev-implementation/VoidAdapter.php deleted file mode 100644 index 4a907c9f..00000000 --- a/dev-implementation/VoidAdapter.php +++ /dev/null @@ -1,36 +0,0 @@ - src test - dev-implementation diff --git a/psalm-baseline.xml b/psalm-baseline.xml index bc07e8c2..9985b99b 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -876,20 +876,6 @@ testShareByDefaultAndSharedByDefault - - - - - - $eventArg - - - attach - - - getEventManager - - getCommonPluginNamesProvider diff --git a/psalm.xml b/psalm.xml index 3b13db86..bdc78c62 100644 --- a/psalm.xml +++ b/psalm.xml @@ -13,7 +13,6 @@ - diff --git a/test/StaticAnalysis/AdapterPluginManagerTypes.php b/test/StaticAnalysis/AdapterPluginManagerTypes.php index b2e9d150..0bcc133e 100644 --- a/test/StaticAnalysis/AdapterPluginManagerTypes.php +++ b/test/StaticAnalysis/AdapterPluginManagerTypes.php @@ -4,15 +4,15 @@ namespace LaminasTest\Cache\StaticAnalysis; -use Laminas\Cache\Storage\Adapter\Dev\VoidAdapter; use Laminas\Cache\Storage\AdapterPluginManager; use Laminas\Cache\Storage\StorageInterface; +use LaminasTest\Cache\Storage\TestAsset\MockAdapter; final class AdapterPluginManagerTypes { public function willReturnAnAdapterUsingFQCN(AdapterPluginManager $manager): StorageInterface { - return $manager->get(VoidAdapter::class); + return $manager->get(MockAdapter::class); } public function validateWillAssertInstanceType(AdapterPluginManager $manager, object $instance): StorageInterface @@ -24,6 +24,6 @@ public function validateWillAssertInstanceType(AdapterPluginManager $manager, ob public function buildWillReturnAdapterUsingFQCN(AdapterPluginManager $manager): StorageInterface { - return $manager->build(VoidAdapter::class); + return $manager->build(MockAdapter::class); } } diff --git a/test/Storage/CapabilitiesTest.php b/test/Storage/CapabilitiesTest.php index c3f3c334..f1bcec8f 100644 --- a/test/Storage/CapabilitiesTest.php +++ b/test/Storage/CapabilitiesTest.php @@ -4,9 +4,11 @@ namespace LaminasTest\Cache\Storage; -use Laminas\Cache\Storage\Adapter\Dev\VoidAdapter; +use ArrayObject; use Laminas\Cache\Storage\Capabilities; -use Laminas\EventManager\Event; +use Laminas\Cache\Storage\StorageInterface; +use Laminas\EventManager\EventManagerInterface; +use LaminasTest\Cache\Storage\TestAsset\EventsCapableStorageInterface; use PHPUnit\Framework\TestCase; use stdClass; @@ -40,14 +42,14 @@ class CapabilitiesTest extends TestCase /** * The storage adapter * - * @var VoidAdapter + * @var StorageInterface */ protected $adapter; public function setUp(): void { $this->marker = new stdClass(); - $this->adapter = new VoidAdapter(); + $this->adapter = $this->createMock(StorageInterface::class); $this->baseCapabilities = new Capabilities($this->adapter, $this->marker); $this->capabilities = new Capabilities($this->adapter, $this->marker, [], $this->baseCapabilities); @@ -73,21 +75,25 @@ public function testGetCapabilityByBaseCapabilities(): void public function testTriggerCapabilityEvent(): void { - $em = $this->capabilities->getAdapter()->getEventManager(); - $event = null; - $em->attach('capability', static function ($eventArg) use (&$event): void { - $event = $eventArg; - }); - - $this->capabilities->setMaxTtl($this->marker, 100); - - self::assertInstanceOf(Event::class, $event); - self::assertEquals('capability', $event->getName()); - self::assertSame($this->adapter, $event->getTarget()); - - $params = $event->getParams(); - self::assertInstanceOf('ArrayObject', $params); - self::assertTrue(isset($params ['maxTtl'])); - self::assertEquals(100, $params['maxTtl']); + $eventManager = $this->createMock(EventManagerInterface::class); + + $adapter = $this->createMock(EventsCapableStorageInterface::class); + $adapter + ->expects(self::once()) + ->method('getEventManager') + ->willReturn($eventManager); + + $eventManager + ->expects(self::once()) + ->method('trigger') + ->with('capability', $adapter, self::callback(static function ($params): bool { + self::assertInstanceOf(ArrayObject::class, $params); + self::assertTrue(isset($params['maxTtl'])); + self::assertEquals(100, $params['maxTtl']); + return true; + })); + + $capabilities = new Capabilities($adapter, $this->marker); + $capabilities->setMaxTtl($this->marker, 100); } } diff --git a/test/Storage/TestAsset/EventsCapableStorageInterface.php b/test/Storage/TestAsset/EventsCapableStorageInterface.php new file mode 100644 index 00000000..b2b7a459 --- /dev/null +++ b/test/Storage/TestAsset/EventsCapableStorageInterface.php @@ -0,0 +1,12 @@ +