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 @@
+