From a2681a02f9e6e925c123a80930add8800e23f223 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Wed, 24 Nov 2021 14:20:17 +0000 Subject: [PATCH] remove deprecation on PersonHasCenterValidator and fix tests --- phpstan-deprecations.neon | 8 -------- .../Person/PersonHasCenterValidatorTest.php | 16 +++++++++++++--- .../Person/PersonHasCenterValidator.php | 10 +++++----- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/phpstan-deprecations.neon b/phpstan-deprecations.neon index bf1ec095e..6f9f19956 100644 --- a/phpstan-deprecations.neon +++ b/phpstan-deprecations.neon @@ -1330,14 +1330,6 @@ parameters: count: 1 path: src/Bundle/ChillPersonBundle/Search/SimilarPersonMatcher.php - - - message: - """ - #^Parameter \\$centerResolverDispatcher of method Chill\\\\PersonBundle\\\\Validator\\\\Constraints\\\\Person\\\\PersonHasCenterValidator\\:\\:__construct\\(\\) has typehint with deprecated interface Chill\\\\MainBundle\\\\Security\\\\Resolver\\\\CenterResolverDispatcherInterface\\: - Use CenterResolverManager and its interface CenterResolverManagerInterface$# - """ - count: 1 - path: src/Bundle/ChillPersonBundle/Validator/Constraints/Person/PersonHasCenterValidator.php - message: diff --git a/src/Bundle/ChillPersonBundle/Tests/Validator/Person/PersonHasCenterValidatorTest.php b/src/Bundle/ChillPersonBundle/Tests/Validator/Person/PersonHasCenterValidatorTest.php index 5d1bbeb9e..5c101740e 100644 --- a/src/Bundle/ChillPersonBundle/Tests/Validator/Person/PersonHasCenterValidatorTest.php +++ b/src/Bundle/ChillPersonBundle/Tests/Validator/Person/PersonHasCenterValidatorTest.php @@ -12,10 +12,11 @@ declare(strict_types=1); namespace Validator\Person; use Chill\MainBundle\Entity\Center; -use Chill\MainBundle\Security\Resolver\CenterResolverDispatcherInterface; +use Chill\MainBundle\Security\Resolver\CenterResolverManagerInterface; use Chill\PersonBundle\Entity\Person; use Chill\PersonBundle\Validator\Constraints\Person\PersonHasCenter; use Chill\PersonBundle\Validator\Constraints\Person\PersonHasCenterValidator; +use Prophecy\Argument; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\Validator\Test\ConstraintValidatorTestCase; @@ -52,9 +53,18 @@ class PersonHasCenterValidatorTest extends ConstraintValidatorTestCase ], ]); - $centerResolverDispatcher = $this->createMock(CenterResolverDispatcherInterface::class); + $prophecy = $this->prophesize(CenterResolverManagerInterface::class); + $prophecy->resolveCenters(Argument::type(Person::class), Argument::any())->will(function ($args) { + $center = $args[0]->getCenter(); - return new PersonHasCenterValidator($parameterBag, $centerResolverDispatcher); + if ($center instanceof Center) { + return [$center]; + } + + return []; + }); + + return new PersonHasCenterValidator($parameterBag, $prophecy->reveal()); } protected function getConstraint() diff --git a/src/Bundle/ChillPersonBundle/Validator/Constraints/Person/PersonHasCenterValidator.php b/src/Bundle/ChillPersonBundle/Validator/Constraints/Person/PersonHasCenterValidator.php index 7612cec8c..967b5672f 100644 --- a/src/Bundle/ChillPersonBundle/Validator/Constraints/Person/PersonHasCenterValidator.php +++ b/src/Bundle/ChillPersonBundle/Validator/Constraints/Person/PersonHasCenterValidator.php @@ -11,7 +11,7 @@ declare(strict_types=1); namespace Chill\PersonBundle\Validator\Constraints\Person; -use Chill\MainBundle\Security\Resolver\CenterResolverDispatcherInterface; +use Chill\MainBundle\Security\Resolver\CenterResolverManagerInterface; use Chill\PersonBundle\Entity\Person; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\Validator\Constraint; @@ -22,12 +22,12 @@ class PersonHasCenterValidator extends ConstraintValidator { private bool $centerRequired; - private CenterResolverDispatcherInterface $centerResolverDispatcher; + private CenterResolverManagerInterface $centerResolverManager; - public function __construct(ParameterBagInterface $parameterBag, CenterResolverDispatcherInterface $centerResolverDispatcher) + public function __construct(ParameterBagInterface $parameterBag, CenterResolverManagerInterface $centerResolverManager) { $this->centerRequired = $parameterBag->get('chill_person')['validation']['center_required']; - $this->centerResolverDispatcher = $centerResolverDispatcher; + $this->centerResolverManager = $centerResolverManager; } public function validate($person, Constraint $constraint) @@ -40,7 +40,7 @@ class PersonHasCenterValidator extends ConstraintValidator return; } - if (null === $this->centerResolverDispatcher->resolveCenter($person)) { + if ([] === $this->centerResolverManager->resolveCenters($person)) { $this ->context ->buildViolation($constraint->message)