From f0605c6b089363c23a6dedf276e8b7f5c22f39ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Thu, 7 Dec 2023 16:18:37 +0100 Subject: [PATCH] Use dedicated FilterListAccompanyingPeriodHelper to filter confidential course in different lists --- .../Export/LinkedToACP/ListActivity.php | 33 +++++------------ ...orkAssociatePersonOnAccompanyingPeriod.php | 25 +++---------- ...panyingPeriodWorkAssociatePersonOnWork.php | 25 +++---------- .../Export/Export/ListEvaluation.php | 25 +++---------- ...istPersonWithAccompanyingPeriodDetails.php | 20 +++-------- ...ssociatePersonOnAccompanyingPeriodTest.php | 23 ++++-------- ...ingPeriodWorkAssociatePersonOnWorkTest.php | 23 ++++-------- .../Export/Export/ListEvaluationTest.php | 35 +++---------------- ...ersonWithAccompanyingPeriodDetailsTest.php | 15 ++++---- ...FilterListAccompanyingPeriodHelperTest.php | 34 ++++++++++++------ 10 files changed, 73 insertions(+), 185 deletions(-) diff --git a/src/Bundle/ChillActivityBundle/Export/Export/LinkedToACP/ListActivity.php b/src/Bundle/ChillActivityBundle/Export/Export/LinkedToACP/ListActivity.php index 270fbd12c..aab2d7db8 100644 --- a/src/Bundle/ChillActivityBundle/Export/Export/LinkedToACP/ListActivity.php +++ b/src/Bundle/ChillActivityBundle/Export/Export/LinkedToACP/ListActivity.php @@ -20,23 +20,18 @@ use Chill\MainBundle\Export\AccompanyingCourseExportHelper; use Chill\MainBundle\Export\GroupedExportInterface; use Chill\MainBundle\Export\Helper\TranslatableStringExportLabelHelper; use Chill\MainBundle\Export\ListInterface; -use Chill\PersonBundle\Entity\Person\PersonCenterHistory; +use Chill\PersonBundle\Export\Helper\FilterListAccompanyingPeriodHelperInterface; use Doctrine\ORM\EntityManagerInterface; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\Form\FormBuilderInterface; -class ListActivity implements ListInterface, GroupedExportInterface +final readonly class ListActivity implements ListInterface, GroupedExportInterface { - private readonly bool $filterStatsByCenters; - public function __construct( - private readonly ListActivityHelper $helper, - private readonly EntityManagerInterface $entityManager, - private readonly TranslatableStringExportLabelHelper $translatableStringExportLabelHelper, - ParameterBagInterface $parameterBag, - ) { - $this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center']; - } + private ListActivityHelper $helper, + private EntityManagerInterface $entityManager, + private TranslatableStringExportLabelHelper $translatableStringExportLabelHelper, + private FilterListAccompanyingPeriodHelperInterface $filterListAccompanyingPeriodHelper, + ) {} public function buildForm(FormBuilderInterface $builder) { @@ -119,19 +114,7 @@ class ListActivity implements ListInterface, GroupedExportInterface ->leftJoin('acppart.person', 'person') ->andWhere('acppart.startDate != acppart.endDate OR acppart.endDate IS NULL'); - if ($this->filterStatsByCenters) { - $qb - ->andWhere( - $qb->expr()->exists( - 'SELECT 1 - FROM '.PersonCenterHistory::class.' acl_count_person_history - WHERE acl_count_person_history.person = person - AND acl_count_person_history.center IN (:authorized_centers) - ' - ) - ) - ->setParameter('authorized_centers', $centers); - } + $this->filterListAccompanyingPeriodHelper->addFilterAccompanyingPeriods($qb, $requiredModifiers, $acl, $data); $qb // some grouping are necessary diff --git a/src/Bundle/ChillPersonBundle/Export/Export/ListAccompanyingPeriodWorkAssociatePersonOnAccompanyingPeriod.php b/src/Bundle/ChillPersonBundle/Export/Export/ListAccompanyingPeriodWorkAssociatePersonOnAccompanyingPeriod.php index 585df6586..688681e97 100644 --- a/src/Bundle/ChillPersonBundle/Export/Export/ListAccompanyingPeriodWorkAssociatePersonOnAccompanyingPeriod.php +++ b/src/Bundle/ChillPersonBundle/Export/Export/ListAccompanyingPeriodWorkAssociatePersonOnAccompanyingPeriod.php @@ -28,11 +28,11 @@ use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWorkGoal; use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWorkReferrerHistory; use Chill\PersonBundle\Entity\AccompanyingPeriod\UserHistory; use Chill\PersonBundle\Entity\Person; -use Chill\PersonBundle\Entity\Person\PersonCenterHistory; use Chill\PersonBundle\Entity\SocialWork\Evaluation; use Chill\PersonBundle\Entity\SocialWork\Goal; use Chill\PersonBundle\Entity\SocialWork\Result; use Chill\PersonBundle\Export\Declarations; +use Chill\PersonBundle\Export\Helper\FilterListAccompanyingPeriodHelperInterface; use Chill\PersonBundle\Export\Helper\LabelPersonHelper; use Chill\PersonBundle\Repository\SocialWork\SocialActionRepository; use Chill\PersonBundle\Repository\SocialWork\SocialIssueRepository; @@ -44,10 +44,9 @@ use Chill\ThirdPartyBundle\Export\Helper\LabelThirdPartyHelper; use Doctrine\ORM\AbstractQuery; use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\QueryBuilder; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\Form\FormBuilderInterface; -class ListAccompanyingPeriodWorkAssociatePersonOnAccompanyingPeriod implements ListInterface, GroupedExportInterface +final readonly class ListAccompanyingPeriodWorkAssociatePersonOnAccompanyingPeriod implements ListInterface, GroupedExportInterface { private const FIELDS = [ 'id', @@ -79,8 +78,6 @@ class ListAccompanyingPeriodWorkAssociatePersonOnAccompanyingPeriod implements L 'updatedBy', ]; - private readonly bool $filterStatsByCenters; - public function __construct( private readonly EntityManagerInterface $entityManager, private readonly DateTimeHelper $dateTimeHelper, @@ -94,10 +91,8 @@ class ListAccompanyingPeriodWorkAssociatePersonOnAccompanyingPeriod implements L private readonly RollingDateConverterInterface $rollingDateConverter, private readonly AggregateStringHelper $aggregateStringHelper, private readonly SocialActionRepository $socialActionRepository, - ParameterBagInterface $parameterBag, - ) { - $this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center']; - } + private readonly FilterListAccompanyingPeriodHelperInterface $filterListAccompanyingPeriodHelper, + ) {} public function buildForm(FormBuilderInterface $builder) { @@ -223,17 +218,7 @@ class ListAccompanyingPeriodWorkAssociatePersonOnAccompanyingPeriod implements L ->andWhere('acppart.startDate <= :calc_date AND (acppart.endDate > :calc_date OR acppart.endDate IS NULL)') ->setParameter('calc_date', $this->rollingDateConverter->convert($calcDate)); - if ($this->filterStatsByCenters) { - $qb - ->andWhere( - $qb->expr()->exists( - 'SELECT 1 FROM '.PersonCenterHistory::class.' acl_count_person_history WHERE acl_count_person_history.person = person - AND acl_count_person_history.center IN (:authorized_centers) - ' - ) - ) - ->setParameter('authorized_centers', $centers); - } + $this->filterListAccompanyingPeriodHelper->addFilterAccompanyingPeriods($qb, $requiredModifiers, $acl, $data); AccompanyingCourseExportHelper::addClosingMotiveExclusionClause($qb); diff --git a/src/Bundle/ChillPersonBundle/Export/Export/ListAccompanyingPeriodWorkAssociatePersonOnWork.php b/src/Bundle/ChillPersonBundle/Export/Export/ListAccompanyingPeriodWorkAssociatePersonOnWork.php index fbde42263..ed64da7b0 100644 --- a/src/Bundle/ChillPersonBundle/Export/Export/ListAccompanyingPeriodWorkAssociatePersonOnWork.php +++ b/src/Bundle/ChillPersonBundle/Export/Export/ListAccompanyingPeriodWorkAssociatePersonOnWork.php @@ -28,11 +28,11 @@ use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWorkGoal; use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWorkReferrerHistory; use Chill\PersonBundle\Entity\AccompanyingPeriod\UserHistory; use Chill\PersonBundle\Entity\Person; -use Chill\PersonBundle\Entity\Person\PersonCenterHistory; use Chill\PersonBundle\Entity\SocialWork\Evaluation; use Chill\PersonBundle\Entity\SocialWork\Goal; use Chill\PersonBundle\Entity\SocialWork\Result; use Chill\PersonBundle\Export\Declarations; +use Chill\PersonBundle\Export\Helper\FilterListAccompanyingPeriodHelperInterface; use Chill\PersonBundle\Export\Helper\LabelPersonHelper; use Chill\PersonBundle\Repository\SocialWork\SocialActionRepository; use Chill\PersonBundle\Repository\SocialWork\SocialIssueRepository; @@ -44,10 +44,9 @@ use Chill\ThirdPartyBundle\Export\Helper\LabelThirdPartyHelper; use Doctrine\ORM\AbstractQuery; use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\QueryBuilder; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\Form\FormBuilderInterface; -class ListAccompanyingPeriodWorkAssociatePersonOnWork implements ListInterface, GroupedExportInterface +final readonly class ListAccompanyingPeriodWorkAssociatePersonOnWork implements ListInterface, GroupedExportInterface { private const FIELDS = [ 'id', @@ -79,8 +78,6 @@ class ListAccompanyingPeriodWorkAssociatePersonOnWork implements ListInterface, 'updatedBy', ]; - private readonly bool $filterStatsByCenters; - public function __construct( private readonly EntityManagerInterface $entityManager, private readonly DateTimeHelper $dateTimeHelper, @@ -94,10 +91,8 @@ class ListAccompanyingPeriodWorkAssociatePersonOnWork implements ListInterface, private readonly RollingDateConverterInterface $rollingDateConverter, private readonly AggregateStringHelper $aggregateStringHelper, private readonly SocialActionRepository $socialActionRepository, - ParameterBagInterface $parameterBag, - ) { - $this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center']; - } + private FilterListAccompanyingPeriodHelperInterface $filterListAccompanyingPeriodHelper, + ) {} public function buildForm(FormBuilderInterface $builder) { @@ -218,17 +213,7 @@ class ListAccompanyingPeriodWorkAssociatePersonOnWork implements ListInterface, ->join('acpw.persons', 'person') ; - if ($this->filterStatsByCenters) { - $qb - ->andWhere( - $qb->expr()->exists( - 'SELECT 1 FROM '.PersonCenterHistory::class.' acl_count_person_history WHERE acl_count_person_history.person = person - AND acl_count_person_history.center IN (:authorized_centers) - ' - ) - ) - ->setParameter('authorized_centers', $centers); - } + $this->filterListAccompanyingPeriodHelper->addFilterAccompanyingPeriods($qb, $requiredModifiers, $acl, $data); AccompanyingCourseExportHelper::addClosingMotiveExclusionClause($qb); diff --git a/src/Bundle/ChillPersonBundle/Export/Export/ListEvaluation.php b/src/Bundle/ChillPersonBundle/Export/Export/ListEvaluation.php index a2bedcddd..71d9924be 100644 --- a/src/Bundle/ChillPersonBundle/Export/Export/ListEvaluation.php +++ b/src/Bundle/ChillPersonBundle/Export/Export/ListEvaluation.php @@ -26,8 +26,8 @@ use Chill\MainBundle\Service\RollingDate\RollingDateConverterInterface; use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWorkEvaluation; use Chill\PersonBundle\Entity\AccompanyingPeriod\UserHistory; use Chill\PersonBundle\Entity\Person; -use Chill\PersonBundle\Entity\Person\PersonCenterHistory; use Chill\PersonBundle\Export\Declarations; +use Chill\PersonBundle\Export\Helper\FilterListAccompanyingPeriodHelperInterface; use Chill\PersonBundle\Export\Helper\LabelPersonHelper; use Chill\PersonBundle\Repository\SocialWork\SocialActionRepository; use Chill\PersonBundle\Repository\SocialWork\SocialIssueRepository; @@ -37,10 +37,9 @@ use Chill\PersonBundle\Templating\Entity\SocialIssueRender; use Doctrine\ORM\AbstractQuery; use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\QueryBuilder; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\Form\FormBuilderInterface; -class ListEvaluation implements ListInterface, GroupedExportInterface +final readonly class ListEvaluation implements ListInterface, GroupedExportInterface { private const FIELDS = [ 'id', @@ -69,8 +68,6 @@ class ListEvaluation implements ListInterface, GroupedExportInterface 'updatedBy', ]; - private readonly bool $filterStatsByCenters; - public function __construct( private readonly EntityManagerInterface $entityManager, private readonly SocialIssueRender $socialIssueRender, @@ -83,10 +80,8 @@ class ListEvaluation implements ListInterface, GroupedExportInterface private readonly TranslatableStringExportLabelHelper $translatableStringExportLabelHelper, private readonly AggregateStringHelper $aggregateStringHelper, private readonly RollingDateConverterInterface $rollingDateConverter, - ParameterBagInterface $parameterBag, - ) { - $this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center']; - } + private FilterListAccompanyingPeriodHelperInterface $filterListAccompanyingPeriodHelper, + ) {} public function buildForm(FormBuilderInterface $builder) { @@ -211,17 +206,7 @@ class ListEvaluation implements ListInterface, GroupedExportInterface ->andWhere('acppart.startDate <= :calc_date AND (acppart.endDate > :calc_date OR acppart.endDate IS NULL)') ->setParameter('calc_date', $this->rollingDateConverter->convert($calcDate)); - if ($this->filterStatsByCenters) { - $qb - ->andWhere( - $qb->expr()->exists( - 'SELECT 1 FROM '.PersonCenterHistory::class.' acl_count_person_history WHERE acl_count_person_history.person = person - AND acl_count_person_history.center IN (:authorized_centers) - ' - ) - ) - ->setParameter('authorized_centers', $centers); - } + $this->filterListAccompanyingPeriodHelper->addFilterAccompanyingPeriods($qb, $requiredModifiers, $acl, $data); AccompanyingCourseExportHelper::addClosingMotiveExclusionClause($qb); diff --git a/src/Bundle/ChillPersonBundle/Export/Export/ListPersonWithAccompanyingPeriodDetails.php b/src/Bundle/ChillPersonBundle/Export/Export/ListPersonWithAccompanyingPeriodDetails.php index d1cf49a5d..d283c8d8a 100644 --- a/src/Bundle/ChillPersonBundle/Export/Export/ListPersonWithAccompanyingPeriodDetails.php +++ b/src/Bundle/ChillPersonBundle/Export/Export/ListPersonWithAccompanyingPeriodDetails.php @@ -20,15 +20,14 @@ use Chill\MainBundle\Service\RollingDate\RollingDate; use Chill\MainBundle\Service\RollingDate\RollingDateConverterInterface; use Chill\PersonBundle\Entity\AccompanyingPeriod; use Chill\PersonBundle\Entity\Person; -use Chill\PersonBundle\Entity\Person\PersonCenterHistory; use Chill\PersonBundle\Export\Declarations; +use Chill\PersonBundle\Export\Helper\FilterListAccompanyingPeriodHelperInterface; use Chill\PersonBundle\Export\Helper\ListAccompanyingPeriodHelper; use Chill\PersonBundle\Export\Helper\ListPersonHelper; use Chill\PersonBundle\Security\Authorization\PersonVoter; use DateTimeImmutable; use Doctrine\ORM\AbstractQuery; use Doctrine\ORM\EntityManagerInterface; -use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\Form\FormBuilderInterface; /** @@ -36,17 +35,13 @@ use Symfony\Component\Form\FormBuilderInterface; */ final readonly class ListPersonWithAccompanyingPeriodDetails implements ListInterface, GroupedExportInterface { - private bool $filterStatsByCenters; - public function __construct( private ListPersonHelper $listPersonHelper, private ListAccompanyingPeriodHelper $listAccompanyingPeriodHelper, private EntityManagerInterface $entityManager, private RollingDateConverterInterface $rollingDateConverter, - ParameterBagInterface $parameterBag, - ) { - $this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center']; - } + private FilterListAccompanyingPeriodHelperInterface $filterListAccompanyingPeriodHelper, + ) {} public function buildForm(FormBuilderInterface $builder) { @@ -122,14 +117,7 @@ final readonly class ListPersonWithAccompanyingPeriodDetails implements ListInte ->join('acppart.accompanyingPeriod', 'acp') ->andWhere($qb->expr()->neq('acp.step', "'".AccompanyingPeriod::STEP_DRAFT."'")); - if ($this->filterStatsByCenters) { - $qb - ->andWhere( - $qb->expr()->exists( - 'SELECT 1 FROM '.PersonCenterHistory::class.' pch WHERE pch.person = person.id AND pch.center IN (:authorized_centers)' - ) - )->setParameter('authorized_centers', $centers); - } + $this->filterListAccompanyingPeriodHelper->addFilterAccompanyingPeriods($qb, $requiredModifiers, $acl, $data); $this->listPersonHelper->addSelect($qb, ListPersonHelper::FIELDS, $this->rollingDateConverter->convert($data['address_date'])); $this->listAccompanyingPeriodHelper->addSelectClauses($qb, $this->rollingDateConverter->convert($data['address_date'])); diff --git a/src/Bundle/ChillPersonBundle/Tests/Export/Export/ListAccompanyingPeriodWorkAssociatePersonOnAccompanyingPeriodTest.php b/src/Bundle/ChillPersonBundle/Tests/Export/Export/ListAccompanyingPeriodWorkAssociatePersonOnAccompanyingPeriodTest.php index aacd1bf55..22081b65a 100644 --- a/src/Bundle/ChillPersonBundle/Tests/Export/Export/ListAccompanyingPeriodWorkAssociatePersonOnAccompanyingPeriodTest.php +++ b/src/Bundle/ChillPersonBundle/Tests/Export/Export/ListAccompanyingPeriodWorkAssociatePersonOnAccompanyingPeriodTest.php @@ -20,6 +20,7 @@ use Chill\MainBundle\Service\RollingDate\RollingDateConverterInterface; use Chill\MainBundle\Test\Export\AbstractExportTest; use Chill\PersonBundle\Export\Declarations; use Chill\PersonBundle\Export\Export\ListAccompanyingPeriodWorkAssociatePersonOnAccompanyingPeriod; +use Chill\PersonBundle\Export\Helper\FilterListAccompanyingPeriodHelperInterface; use Chill\PersonBundle\Export\Helper\LabelPersonHelper; use Chill\PersonBundle\Repository\SocialWork\SocialActionRepository; use Chill\PersonBundle\Repository\SocialWork\SocialIssueRepository; @@ -27,6 +28,7 @@ use Chill\PersonBundle\Templating\Entity\SocialActionRender; use Chill\PersonBundle\Templating\Entity\SocialIssueRender; use Chill\ThirdPartyBundle\Export\Helper\LabelThirdPartyHelper; use Doctrine\ORM\EntityManagerInterface; +use Prophecy\PhpUnit\ProphecyTrait; /** * @internal @@ -35,6 +37,8 @@ use Doctrine\ORM\EntityManagerInterface; */ class ListAccompanyingPeriodWorkAssociatePersonOnAccompanyingPeriodTest extends AbstractExportTest { + use ProphecyTrait; + protected function setUp(): void { parent::setUp(); @@ -55,6 +59,7 @@ class ListAccompanyingPeriodWorkAssociatePersonOnAccompanyingPeriodTest extends $rollingDateConverter = self::$container->get(RollingDateConverterInterface::class); $aggregateStringHelper = self::$container->get(AggregateStringHelper::class); $socialActionRepository = self::$container->get(SocialActionRepository::class); + $filterListAccompanyingPeriodHelper = $this->prophesize(FilterListAccompanyingPeriodHelperInterface::class); yield new ListAccompanyingPeriodWorkAssociatePersonOnAccompanyingPeriod( $entityManager, @@ -69,23 +74,7 @@ class ListAccompanyingPeriodWorkAssociatePersonOnAccompanyingPeriodTest extends $rollingDateConverter, $aggregateStringHelper, $socialActionRepository, - $this->getParameters(true), - ); - - yield new ListAccompanyingPeriodWorkAssociatePersonOnAccompanyingPeriod( - $entityManager, - $dateTimeHelper, - $userHelper, - $personHelper, - $thirdPartyHelper, - $translatableStringExportLabelHelper, - $socialIssueRender, - $socialIssueRepository, - $socialActionRender, - $rollingDateConverter, - $aggregateStringHelper, - $socialActionRepository, - $this->getParameters(false), + $filterListAccompanyingPeriodHelper->reveal(), ); } diff --git a/src/Bundle/ChillPersonBundle/Tests/Export/Export/ListAccompanyingPeriodWorkAssociatePersonOnWorkTest.php b/src/Bundle/ChillPersonBundle/Tests/Export/Export/ListAccompanyingPeriodWorkAssociatePersonOnWorkTest.php index 2f65ac85b..7c55e5f3c 100644 --- a/src/Bundle/ChillPersonBundle/Tests/Export/Export/ListAccompanyingPeriodWorkAssociatePersonOnWorkTest.php +++ b/src/Bundle/ChillPersonBundle/Tests/Export/Export/ListAccompanyingPeriodWorkAssociatePersonOnWorkTest.php @@ -20,6 +20,7 @@ use Chill\MainBundle\Service\RollingDate\RollingDateConverterInterface; use Chill\MainBundle\Test\Export\AbstractExportTest; use Chill\PersonBundle\Export\Declarations; use Chill\PersonBundle\Export\Export\ListAccompanyingPeriodWorkAssociatePersonOnWork; +use Chill\PersonBundle\Export\Helper\FilterListAccompanyingPeriodHelperInterface; use Chill\PersonBundle\Export\Helper\LabelPersonHelper; use Chill\PersonBundle\Repository\SocialWork\SocialActionRepository; use Chill\PersonBundle\Repository\SocialWork\SocialIssueRepository; @@ -27,6 +28,7 @@ use Chill\PersonBundle\Templating\Entity\SocialActionRender; use Chill\PersonBundle\Templating\Entity\SocialIssueRender; use Chill\ThirdPartyBundle\Export\Helper\LabelThirdPartyHelper; use Doctrine\ORM\EntityManagerInterface; +use Prophecy\PhpUnit\ProphecyTrait; /** * @internal @@ -35,6 +37,8 @@ use Doctrine\ORM\EntityManagerInterface; */ class ListAccompanyingPeriodWorkAssociatePersonOnWorkTest extends AbstractExportTest { + use ProphecyTrait; + protected function setUp(): void { parent::setUp(); @@ -55,6 +59,7 @@ class ListAccompanyingPeriodWorkAssociatePersonOnWorkTest extends AbstractExport $rollingDateConverter = self::$container->get(RollingDateConverterInterface::class); $aggregateStringHelper = self::$container->get(AggregateStringHelper::class); $socialActionRepository = self::$container->get(SocialActionRepository::class); + $filterHelper = $this->prophesize(FilterListAccompanyingPeriodHelperInterface::class); yield new ListAccompanyingPeriodWorkAssociatePersonOnWork( $entityManager, @@ -69,23 +74,7 @@ class ListAccompanyingPeriodWorkAssociatePersonOnWorkTest extends AbstractExport $rollingDateConverter, $aggregateStringHelper, $socialActionRepository, - $this->getParameters(true), - ); - - yield new ListAccompanyingPeriodWorkAssociatePersonOnWork( - $entityManager, - $dateTimeHelper, - $userHelper, - $personHelper, - $thirdPartyHelper, - $translatableStringExportLabelHelper, - $socialIssueRender, - $socialIssueRepository, - $socialActionRender, - $rollingDateConverter, - $aggregateStringHelper, - $socialActionRepository, - $this->getParameters(false), + $filterHelper->reveal(), ); } diff --git a/src/Bundle/ChillPersonBundle/Tests/Export/Export/ListEvaluationTest.php b/src/Bundle/ChillPersonBundle/Tests/Export/Export/ListEvaluationTest.php index 08920881e..fde50ea6c 100644 --- a/src/Bundle/ChillPersonBundle/Tests/Export/Export/ListEvaluationTest.php +++ b/src/Bundle/ChillPersonBundle/Tests/Export/Export/ListEvaluationTest.php @@ -11,7 +11,6 @@ declare(strict_types=1); namespace Chill\PersonBundle\Tests\Export\Export; -use Chill\MainBundle\Entity\Center; use Chill\MainBundle\Export\Helper\AggregateStringHelper; use Chill\MainBundle\Export\Helper\DateTimeHelper; use Chill\MainBundle\Export\Helper\TranslatableStringExportLabelHelper; @@ -22,13 +21,14 @@ use Chill\MainBundle\Service\RollingDate\RollingDateConverterInterface; use Chill\MainBundle\Test\Export\AbstractExportTest; use Chill\PersonBundle\Export\Declarations; use Chill\PersonBundle\Export\Export\ListEvaluation; +use Chill\PersonBundle\Export\Helper\FilterListAccompanyingPeriodHelperInterface; use Chill\PersonBundle\Export\Helper\LabelPersonHelper; use Chill\PersonBundle\Repository\SocialWork\SocialActionRepository; use Chill\PersonBundle\Repository\SocialWork\SocialIssueRepository; use Chill\PersonBundle\Templating\Entity\SocialActionRender; use Chill\PersonBundle\Templating\Entity\SocialIssueRender; -use Doctrine\ORM\AbstractQuery; use Doctrine\ORM\EntityManagerInterface; +use Prophecy\PhpUnit\ProphecyTrait; /** * @internal @@ -37,7 +37,7 @@ use Doctrine\ORM\EntityManagerInterface; */ class ListEvaluationTest extends AbstractExportTest { - private ListEvaluation $listEvaluation; + use ProphecyTrait; private CenterRepositoryInterface $centerRepository; @@ -46,7 +46,6 @@ class ListEvaluationTest extends AbstractExportTest parent::setUp(); self::bootKernel(); - $this->listEvaluation = self::$container->get(ListEvaluation::class); $this->centerRepository = self::$container->get(CenterRepositoryInterface::class); } @@ -63,6 +62,7 @@ class ListEvaluationTest extends AbstractExportTest $rollingDateConverter = self::$container->get(RollingDateConverterInterface::class); $aggregateStringHelper = self::$container->get(AggregateStringHelper::class); $socialActionRepository = self::$container->get(SocialActionRepository::class); + $filterListHelper = $this->prophesize(FilterListAccompanyingPeriodHelperInterface::class); yield new ListEvaluation( $entityManager, @@ -76,22 +76,7 @@ class ListEvaluationTest extends AbstractExportTest $translatableStringExportLabelHelper, $aggregateStringHelper, $rollingDateConverter, - $this->getParameters(true), - ); - - yield new ListEvaluation( - $entityManager, - $socialIssueRender, - $socialIssueRepository, - $socialActionRender, - $socialActionRepository, - $userHelper, - $personHelper, - $dateTimeHelper, - $translatableStringExportLabelHelper, - $aggregateStringHelper, - $rollingDateConverter, - $this->getParameters(false), + $filterListHelper->reveal(), ); } @@ -104,14 +89,4 @@ class ListEvaluationTest extends AbstractExportTest { return [[Declarations::ACP_TYPE]]; } - - public function testQuery(): void - { - $centers = $this->centerRepository->findAll(); - - $query = $this->listEvaluation->initiateQuery([], array_map(fn (Center $c) => ['center' => $c], $centers), ['calc_date' => new RollingDate(RollingDate::T_TODAY)]); - $query->setMaxResults(1); - - self::assertIsArray($query->getQuery()->getResult(AbstractQuery::HYDRATE_ARRAY)); - } } diff --git a/src/Bundle/ChillPersonBundle/Tests/Export/Export/ListPersonWithAccompanyingPeriodDetailsTest.php b/src/Bundle/ChillPersonBundle/Tests/Export/Export/ListPersonWithAccompanyingPeriodDetailsTest.php index aba208df9..0d3200b75 100644 --- a/src/Bundle/ChillPersonBundle/Tests/Export/Export/ListPersonWithAccompanyingPeriodDetailsTest.php +++ b/src/Bundle/ChillPersonBundle/Tests/Export/Export/ListPersonWithAccompanyingPeriodDetailsTest.php @@ -16,9 +16,11 @@ use Chill\MainBundle\Service\RollingDate\RollingDateConverterInterface; use Chill\MainBundle\Test\Export\AbstractExportTest; use Chill\PersonBundle\Export\Declarations; use Chill\PersonBundle\Export\Export\ListPersonWithAccompanyingPeriodDetails; +use Chill\PersonBundle\Export\Helper\FilterListAccompanyingPeriodHelperInterface; use Chill\PersonBundle\Export\Helper\ListAccompanyingPeriodHelper; use Chill\PersonBundle\Export\Helper\ListPersonHelper; use Doctrine\ORM\EntityManagerInterface; +use Prophecy\PhpUnit\ProphecyTrait; /** * @internal @@ -27,6 +29,8 @@ use Doctrine\ORM\EntityManagerInterface; */ class ListPersonWithAccompanyingPeriodDetailsTest extends AbstractExportTest { + use ProphecyTrait; + protected function setUp(): void { parent::setUp(); @@ -39,21 +43,14 @@ class ListPersonWithAccompanyingPeriodDetailsTest extends AbstractExportTest $listAccompanyingPeriodHelper = self::$container->get(ListAccompanyingPeriodHelper::class); $entityManager = self::$container->get(EntityManagerInterface::class); $rollingDateConverter = self::$container->get(RollingDateConverterInterface::class); + $filterHelper = $this->prophesize(FilterListAccompanyingPeriodHelperInterface::class); yield new ListPersonWithAccompanyingPeriodDetails( $listPersonHelper, $listAccompanyingPeriodHelper, $entityManager, $rollingDateConverter, - $this->getParameters(true), - ); - - yield new ListPersonWithAccompanyingPeriodDetails( - $listPersonHelper, - $listAccompanyingPeriodHelper, - $entityManager, - $rollingDateConverter, - $this->getParameters(false), + $filterHelper->reveal() ); } diff --git a/src/Bundle/ChillPersonBundle/Tests/Export/Helper/FilterListAccompanyingPeriodHelperTest.php b/src/Bundle/ChillPersonBundle/Tests/Export/Helper/FilterListAccompanyingPeriodHelperTest.php index f0e1129fa..618063ede 100644 --- a/src/Bundle/ChillPersonBundle/Tests/Export/Helper/FilterListAccompanyingPeriodHelperTest.php +++ b/src/Bundle/ChillPersonBundle/Tests/Export/Helper/FilterListAccompanyingPeriodHelperTest.php @@ -1,5 +1,14 @@ willReturn($scopesConfidentials); $filter = new FilterListAccompanyingPeriodHelper( - $security->reveal(), - $this->centerRepository, - $authorizationHelper->reveal(), - $parameterBag - ); + $security->reveal(), + $this->centerRepository, + $authorizationHelper->reveal(), + $parameterBag + ); $filter->addFilterAccompanyingPeriods($qb, [], $this->getACL(), []); @@ -89,19 +101,19 @@ final class FilterListAccompanyingPeriodHelperTest extends KernelTestCase yield [ $qb, - new ParameterBag(['chill_main' => ['acl' => ['filter_stats_by_center' => true]]]) + new ParameterBag(['chill_main' => ['acl' => ['filter_stats_by_center' => true]]]), ]; yield [ $qb, - new ParameterBag(['chill_main' => ['acl' => ['filter_stats_by_center' => false]]]) + new ParameterBag(['chill_main' => ['acl' => ['filter_stats_by_center' => false]]]), ]; } /** - * @return list}> The ACL, structured as an array. + * @return list}> the ACL, structured as an array * - * @throws \RuntimeException When no center or circle is found. + * @throws \RuntimeException when no center or circle is found */ private function getACL(): array {