From 355cb4e003629b5c84058f050466a0bc44536a59 Mon Sep 17 00:00:00 2001 From: Joseph Bielawski Date: Wed, 13 Dec 2023 20:05:45 +0100 Subject: [PATCH] Add basic tests for `DefinitionDecoratesConstraint` --- PhpUnit/DefinitionDecoratesConstraint.php | 22 ++++++++-------- .../PhpUnit/AbstractExtensionTestCaseTest.php | 26 +++++++++++++++++++ 2 files changed, 37 insertions(+), 11 deletions(-) diff --git a/PhpUnit/DefinitionDecoratesConstraint.php b/PhpUnit/DefinitionDecoratesConstraint.php index accf612..6e9a8a9 100644 --- a/PhpUnit/DefinitionDecoratesConstraint.php +++ b/PhpUnit/DefinitionDecoratesConstraint.php @@ -16,11 +16,11 @@ final class DefinitionDecoratesConstraint extends Constraint ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE => 'IGNORE_ON_UNINITIALIZED_REFERENCE', ]; - private $serviceId; - private $decoratedServiceId; - private $renamedId; - private $priority; - private $invalidBehavior; + private string $serviceId; + private string $decoratedServiceId; + private ?string $renamedId; + private int $priority; + private ?int $invalidBehavior; public function __construct(string $serviceId, string $decoratedServiceId, ?string $renamedId = null, int $priority = 0, ?int $invalidBehavior = null) { @@ -62,7 +62,7 @@ private function evaluateServiceDefinition(ContainerBuilder $containerBuilder, b } $this->fail( - $containerBuilder, + $this->serviceId, sprintf( 'The container builder has no service "%s"', $this->serviceId @@ -80,7 +80,7 @@ private function evaluateServiceDefinition(ContainerBuilder $containerBuilder, b } $this->fail( - $containerBuilder, + $this->serviceId, sprintf( 'The container builder has a service "%s", but it does not decorate any service', $this->serviceId @@ -94,7 +94,7 @@ private function evaluateServiceDefinition(ContainerBuilder $containerBuilder, b } $this->fail( - $containerBuilder, + $this->serviceId, sprintf( 'The container builder has a decorator service "%s", but it does decorate service "%s".', $this->serviceId, @@ -109,7 +109,7 @@ private function evaluateServiceDefinition(ContainerBuilder $containerBuilder, b } $this->fail( - $containerBuilder, + $this->serviceId, sprintf( 'The container builder has a decorator service "%s", but it does not rename decorated service to "%s".', $this->serviceId, @@ -124,7 +124,7 @@ private function evaluateServiceDefinition(ContainerBuilder $containerBuilder, b } $this->fail( - $containerBuilder, + $this->serviceId, sprintf( 'The container builder has a decorator service "%s", but it does not decorate at expected "%d" priority.', $this->serviceId, @@ -139,7 +139,7 @@ private function evaluateServiceDefinition(ContainerBuilder $containerBuilder, b } $this->fail( - $containerBuilder, + $this->serviceId, sprintf( 'The container builder has a decorator service "%s", but it does not decorate with expected "%s" behavior.', $this->serviceId, diff --git a/Tests/PhpUnit/AbstractExtensionTestCaseTest.php b/Tests/PhpUnit/AbstractExtensionTestCaseTest.php index 966e0ce..0c23943 100644 --- a/Tests/PhpUnit/AbstractExtensionTestCaseTest.php +++ b/Tests/PhpUnit/AbstractExtensionTestCaseTest.php @@ -272,4 +272,30 @@ public function if_service_is_not_defined_it_does_not_fail(): void $this->assertContainerBuilderNotHasService('undefined'); } + + /** + * @test + */ + public function if_service_is_not_defined_in_service_decoration_it_fails(): void + { + $this->load(); + + $this->expectException(ExpectationFailedException::class); + $this->expectExceptionMessage('The container builder has no service "undefined"'); + + $this->assertContainerBuilderServiceDecoration('undefined', 'undefined'); + } + + /** + * @test + */ + public function if_service_decoration_is_not_defined_in_service_decoration_it_fails(): void + { + $this->load(); + + $this->expectException(ExpectationFailedException::class); + $this->expectExceptionMessage('The container builder has a service "manual_service_id", but it does not decorate any service'); + + $this->assertContainerBuilderServiceDecoration('manual_service_id', 'undefined'); + } }