From 8a972b5b48accd6a9a1580d874f5c2f3e573160f Mon Sep 17 00:00:00 2001 From: Alan Poulain Date: Wed, 13 Feb 2019 11:35:22 +0100 Subject: [PATCH] Apply suggestions from code review Co-Authored-By: pamil --- ...dependency_injection_compatibility.feature | 2 +- phpstan.neon | 2 +- .../ContextServiceEnvironmentHandler.php | 28 ++++++++----------- ...nitializedSymfonyExtensionEnvironment.php} | 2 +- ...nitializedSymfonyExtensionEnvironment.php} | 2 +- 5 files changed, 15 insertions(+), 21 deletions(-) rename src/Context/Environment/{InitialisedSymfonyExtensionEnvironment.php => InitializedSymfonyExtensionEnvironment.php} (96%) rename src/Context/Environment/{UninitialisedSymfonyExtensionEnvironment.php => UninitializedSymfonyExtensionEnvironment.php} (96%) diff --git a/features/sanity_checks/context_constructor_dependency_injection_compatibility.feature b/features/sanity_checks/context_constructor_dependency_injection_compatibility.feature index 8b6c005..6069c68 100644 --- a/features/sanity_checks/context_constructor_dependency_injection_compatibility.feature +++ b/features/sanity_checks/context_constructor_dependency_injection_compatibility.feature @@ -1,6 +1,6 @@ Feature: Context constructor dependency injection compatibility - Scenario: Using context consturctor dependency injection + Scenario: Using context constructor dependency injection Given a working Symfony application with SymfonyExtension configured And a Behat configuration containing: """ diff --git a/phpstan.neon b/phpstan.neon index e1d4afb..64c7cba 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -5,5 +5,5 @@ parameters: - '/Cannot access offset 0 on callable/' - '/Cannot access offset 1 on callable/' - '/Cannot call method [a-zA-Z0-9]+\(\) on Symfony\\Component\\Config\\Definition\\Builder\\NodeParentInterface|null\./' - - '/Method FriendsOfBehat\\SymfonyExtension\\Context\\Environment\\InitialisedSymfonyExtensionEnvironment::bindCallee\(\) should return callable/' + - '/Method FriendsOfBehat\\SymfonyExtension\\Context\\Environment\\InitializedSymfonyExtensionEnvironment::bindCallee\(\) should return callable/' - '/Strict comparison using === between 0\|1 and 2 will always evaluate to false\./' diff --git a/src/Context/Environment/Handler/ContextServiceEnvironmentHandler.php b/src/Context/Environment/Handler/ContextServiceEnvironmentHandler.php index 887d264..dca3f34 100644 --- a/src/Context/Environment/Handler/ContextServiceEnvironmentHandler.php +++ b/src/Context/Environment/Handler/ContextServiceEnvironmentHandler.php @@ -23,8 +23,8 @@ use Behat\Testwork\Suite\Exception\SuiteConfigurationException; use Behat\Testwork\Suite\GenericSuite; use Behat\Testwork\Suite\Suite; use FriendsOfBehat\SymfonyExtension\Bundle\FriendsOfBehatSymfonyExtensionBundle; -use FriendsOfBehat\SymfonyExtension\Context\Environment\InitialisedSymfonyExtensionEnvironment; -use FriendsOfBehat\SymfonyExtension\Context\Environment\UninitialisedSymfonyExtensionEnvironment; +use FriendsOfBehat\SymfonyExtension\Context\Environment\InitializedSymfonyExtensionEnvironment; +use FriendsOfBehat\SymfonyExtension\Context\Environment\UninitializedSymfonyExtensionEnvironment; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpKernel\KernelInterface; @@ -61,22 +61,19 @@ final class ContextServiceEnvironmentHandler implements EnvironmentHandler $delegatedSuite = $this->cloneSuiteWithoutContexts($suite, array_keys($symfonyContexts)); + /** @var ContextEnvironment $delegatedEnvironment */ $delegatedEnvironment = $this->decoratedEnvironmentHandler->buildEnvironment($delegatedSuite); - if (!$delegatedEnvironment instanceof ContextEnvironment) { - throw new \Exception(); - } - - return new UninitialisedSymfonyExtensionEnvironment($suite, $symfonyContexts, $delegatedEnvironment); + return new UninitializedSymfonyExtensionEnvironment($suite, $symfonyContexts, $delegatedEnvironment); } public function supportsEnvironmentAndSubject(Environment $environment, $testSubject = null): bool { - return $environment instanceof UninitialisedSymfonyExtensionEnvironment; + return $environment instanceof UninitializedSymfonyExtensionEnvironment; } /** - * @param UninitialisedSymfonyExtensionEnvironment $uninitializedEnvironment + * @param UninitializedSymfonyExtensionEnvironment $uninitializedEnvironment * * @throws EnvironmentIsolationException */ @@ -84,7 +81,7 @@ final class ContextServiceEnvironmentHandler implements EnvironmentHandler { $this->assertEnvironmentCanBeIsolated($uninitializedEnvironment, $testSubject); - $environment = new InitialisedSymfonyExtensionEnvironment($uninitializedEnvironment->getSuite()); + $environment = new InitializedSymfonyExtensionEnvironment($uninitializedEnvironment->getSuite()); foreach ($uninitializedEnvironment->getServices() as $serviceId) { /** @var Context $context */ @@ -93,12 +90,9 @@ final class ContextServiceEnvironmentHandler implements EnvironmentHandler $environment->registerContext($context); } + /** @var InitializedContextEnvironment $delegatedEnvironment */ $delegatedEnvironment = $this->decoratedEnvironmentHandler->isolateEnvironment($uninitializedEnvironment->getDelegatedEnvironment()); - if (!$delegatedEnvironment instanceof InitializedContextEnvironment) { - throw new \Exception(); - } - foreach ($delegatedEnvironment->getContexts() as $context) { $environment->registerContext($context); } @@ -123,7 +117,7 @@ final class ContextServiceEnvironmentHandler implements EnvironmentHandler ), $suite->getName()); } - return array_map([$this, 'normaliseContext'], $contexts); + return array_map([$this, 'normalizeContext'], $contexts); } private function cloneSuiteWithoutContexts(Suite $suite, array $contextsToRemove): Suite @@ -139,13 +133,13 @@ final class ContextServiceEnvironmentHandler implements EnvironmentHandler } $contexts = array_filter($contexts, function ($context) use ($contextsToRemove): bool { - return !in_array($this->normaliseContext($context), $contextsToRemove, true); + return !in_array($this->normalizeContext($context), $contextsToRemove, true); }); return new GenericSuite($suite->getName(), array_merge($suite->getSettings(), ['contexts' => $contexts])); } - private function normaliseContext($context): string + private function normalizeContext($context): string { if (is_array($context)) { return current(array_keys($context)); diff --git a/src/Context/Environment/InitialisedSymfonyExtensionEnvironment.php b/src/Context/Environment/InitializedSymfonyExtensionEnvironment.php similarity index 96% rename from src/Context/Environment/InitialisedSymfonyExtensionEnvironment.php rename to src/Context/Environment/InitializedSymfonyExtensionEnvironment.php index 609bbe4..b07da6e 100644 --- a/src/Context/Environment/InitialisedSymfonyExtensionEnvironment.php +++ b/src/Context/Environment/InitializedSymfonyExtensionEnvironment.php @@ -22,7 +22,7 @@ use FriendsOfBehat\SymfonyExtension\Context\Environment\Handler\ContextServiceEn /** * @see ContextServiceEnvironmentHandler */ -final class InitialisedSymfonyExtensionEnvironment implements SymfonyExtensionEnvironment +final class InitializedSymfonyExtensionEnvironment implements SymfonyExtensionEnvironment { /** @var Suite */ private $suite; diff --git a/src/Context/Environment/UninitialisedSymfonyExtensionEnvironment.php b/src/Context/Environment/UninitializedSymfonyExtensionEnvironment.php similarity index 96% rename from src/Context/Environment/UninitialisedSymfonyExtensionEnvironment.php rename to src/Context/Environment/UninitializedSymfonyExtensionEnvironment.php index dbdebb5..f3d0626 100644 --- a/src/Context/Environment/UninitialisedSymfonyExtensionEnvironment.php +++ b/src/Context/Environment/UninitializedSymfonyExtensionEnvironment.php @@ -21,7 +21,7 @@ use FriendsOfBehat\SymfonyExtension\Context\Environment\Handler\ContextServiceEn /** * @see ContextServiceEnvironmentHandler */ -final class UninitialisedSymfonyExtensionEnvironment extends StaticEnvironment implements SymfonyExtensionEnvironment +final class UninitializedSymfonyExtensionEnvironment extends StaticEnvironment implements SymfonyExtensionEnvironment { /** @var string[] */ private $contexts;