From 35b74eadbf9a9a20ec5a825d903dee73a63d107e Mon Sep 17 00:00:00 2001 From: nkl-kst <24235974+nkl-kst@users.noreply.github.com> Date: Thu, 14 Sep 2023 11:18:05 +0200 Subject: [PATCH] Fix test for autoconfiguration --- .../FooProcessorWithPriority.php | 23 +++++++++++++ .../MonologExtensionTest.php | 34 +++++++++++++++++-- 2 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 Tests/DependencyInjection/Fixtures/AsMonologProcessor/FooProcessorWithPriority.php diff --git a/Tests/DependencyInjection/Fixtures/AsMonologProcessor/FooProcessorWithPriority.php b/Tests/DependencyInjection/Fixtures/AsMonologProcessor/FooProcessorWithPriority.php new file mode 100644 index 00000000..6bade581 --- /dev/null +++ b/Tests/DependencyInjection/Fixtures/AsMonologProcessor/FooProcessorWithPriority.php @@ -0,0 +1,23 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Bundle\MonologBundle\Tests\DependencyInjection\Fixtures\AsMonologProcessor; + +use Monolog\Attribute\AsMonologProcessor; + +#[AsMonologProcessor(handler: 'foo_handler')] +class FooProcessorWithPriority +{ + #[AsMonologProcessor(channel: 'ccc_channel', priority: '10')] + public function __invoke(): void + { + } +} diff --git a/Tests/DependencyInjection/MonologExtensionTest.php b/Tests/DependencyInjection/MonologExtensionTest.php index 4ff3cf93..e63ce79e 100644 --- a/Tests/DependencyInjection/MonologExtensionTest.php +++ b/Tests/DependencyInjection/MonologExtensionTest.php @@ -21,6 +21,7 @@ use Symfony\Bundle\MonologBundle\DependencyInjection\MonologExtension; use Symfony\Bundle\MonologBundle\DependencyInjection\Compiler\LoggerChannelPass; use Symfony\Bundle\MonologBundle\Tests\DependencyInjection\Fixtures\AsMonologProcessor\FooProcessor; +use Symfony\Bundle\MonologBundle\Tests\DependencyInjection\Fixtures\AsMonologProcessor\FooProcessorWithPriority; use Symfony\Bundle\MonologBundle\Tests\DependencyInjection\Fixtures\AsMonologProcessor\RedeclareMethodProcessor; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; @@ -826,8 +827,8 @@ public function testAsMonologProcessorAutoconfigurationRedeclareMethod(): void */ public function testAsMonologProcessorAutoconfiguration(): void { - if (!\class_exists(AsMonologProcessor::class, true)) { - $this->markTestSkipped('Monolog >= 2.3.6 is needed.'); + if (!\class_exists(AsMonologProcessor::class, true) || \property_exists(AsMonologProcessor::class, 'priority')) { + $this->markTestSkipped('Monolog >= 2.3.6 and < 3.4.0 is needed.'); } $container = $this->getContainer([], [ @@ -848,6 +849,35 @@ public function testAsMonologProcessorAutoconfiguration(): void ], $container->getDefinition(FooProcessor::class)->getTag('monolog.processor')); } + /** + * @requires PHP 8.0 + */ + public function testAsMonologProcessorAutoconfigurationWithPriority(): void + { + if (!\class_exists(AsMonologProcessor::class, true) || !\property_exists(AsMonologProcessor::class, 'priority')) { + $this->markTestSkipped('Monolog >= 3.4.0 is needed.'); + } + + $container = $this->getContainer([], [ + FooProcessorWithPriority::class => (new Definition(FooProcessorWithPriority::class))->setAutoconfigured(true), + ]); + + $this->assertSame([ + [ + 'channel' => null, + 'handler' => 'foo_handler', + 'method' => null, + 'priority' => null, + ], + [ + 'channel' => 'ccc_channel', + 'handler' => null, + 'method' => '__invoke', + 'priority' => 10, + ], + ], $container->getDefinition(FooProcessorWithPriority::class)->getTag('monolog.processor')); + } + protected function getContainer(array $config = [], array $thirdPartyDefinitions = []) { $container = new ContainerBuilder(new EnvPlaceholderParameterBag());