From cc8040785ff76516a200a216ba045e2b4edcf5f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Fri, 21 Jun 2019 16:56:01 +0200 Subject: [PATCH] Enhancement: Tag clients --- CHANGELOG.md | 6 +++++ src/DependencyInjection/HttplugExtension.php | 3 +++ .../HttplugExtensionTest.php | 24 +++++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f25406a..ece91f0e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ The change log describes what is "Added", "Removed", "Changed" or "Fixed" between each release. +## Unreleased + +### Added + +- Configured clients are now tagged with `'httplug.client'` + ## 1.16.0 - 2019-06-05 ### Changed diff --git a/src/DependencyInjection/HttplugExtension.php b/src/DependencyInjection/HttplugExtension.php index faf1e1d5..61a734b5 100644 --- a/src/DependencyInjection/HttplugExtension.php +++ b/src/DependencyInjection/HttplugExtension.php @@ -37,6 +37,8 @@ */ class HttplugExtension extends Extension { + public const HTTPLUG_CLIENT_TAG = 'httplug.client'; + /** * Used to check is the VCR plugin is installed. * @@ -419,6 +421,7 @@ function ($id) { ->addArgument([ 'client_name' => $clientName, ]) + ->addTag(self::HTTPLUG_CLIENT_TAG) ; if (is_bool($arguments['public'])) { diff --git a/tests/Unit/DependencyInjection/HttplugExtensionTest.php b/tests/Unit/DependencyInjection/HttplugExtensionTest.php index fd5b9204..54f6cc75 100644 --- a/tests/Unit/DependencyInjection/HttplugExtensionTest.php +++ b/tests/Unit/DependencyInjection/HttplugExtensionTest.php @@ -31,6 +31,11 @@ protected function getContainerExtensions() ]; } + public function testConstants(): void + { + self::assertSame('httplug.client', HttplugExtension::HTTPLUG_CLIENT_TAG); + } + public function testConfigLoadDefault(): void { $this->load(); @@ -452,6 +457,25 @@ public function testBatchClientCanBePublic(): void } } + public function testClientIsTaggedWithHttplugClientTag(): void + { + $this->load([ + 'clients' => [ + 'acme' => null, + ], + ]); + + $serviceId = 'httplug.client.acme'; + + $this->assertContainerBuilderHasService($serviceId); + + $this->assertTrue($this->container->getDefinition($serviceId)->hasTag(HttplugExtension::HTTPLUG_CLIENT_TAG), sprintf( + 'Failed asserting that client with service identifier "%s" has been tagged with "%s".', + $serviceId, + HttplugExtension::HTTPLUG_CLIENT_TAG + )); + } + /** * @dataProvider provideVcrPluginConfig * @group vcr-plugin