From e3743d3593a9b20ce2490385aa758506cd4db462 Mon Sep 17 00:00:00 2001 From: Mathieu Jaumotte Date: Mon, 1 Aug 2022 10:49:02 +0200 Subject: [PATCH] tests new filters ReferrerFilter and OpenBetweenDatesFilter (wip.. test failed) --- .../Test/Export/AbstractFilterTest.php | 2 +- .../Export/Filter/ReferrerFilter.php | 4 +- .../Filter/OpenBetweenDatesFilterTest.php | 66 +++++++++++++++ .../Export/Filter/ReferrerFilterTest.php | 82 +++++++++++++++++++ 4 files changed, 151 insertions(+), 3 deletions(-) create mode 100644 src/Bundle/ChillPersonBundle/Tests/Export/Filter/OpenBetweenDatesFilterTest.php create mode 100644 src/Bundle/ChillPersonBundle/Tests/Export/Filter/ReferrerFilterTest.php diff --git a/src/Bundle/ChillMainBundle/Test/Export/AbstractFilterTest.php b/src/Bundle/ChillMainBundle/Test/Export/AbstractFilterTest.php index 34869c30b..bef4fd200 100644 --- a/src/Bundle/ChillMainBundle/Test/Export/AbstractFilterTest.php +++ b/src/Bundle/ChillMainBundle/Test/Export/AbstractFilterTest.php @@ -37,7 +37,7 @@ abstract class AbstractFilterTest extends KernelTestCase protected function setUp(): void { - $$this->prophet = $this->getProphet(); + $this->prophet = $this->getProphet(); } public function dataProviderAlterQuery() diff --git a/src/Bundle/ChillPersonBundle/Export/Filter/ReferrerFilter.php b/src/Bundle/ChillPersonBundle/Export/Filter/ReferrerFilter.php index e46b20592..bac2656c6 100644 --- a/src/Bundle/ChillPersonBundle/Export/Filter/ReferrerFilter.php +++ b/src/Bundle/ChillPersonBundle/Export/Filter/ReferrerFilter.php @@ -48,7 +48,7 @@ class ReferrerFilter implements FilterInterface /** * @inheritDoc */ - public function describeAction($data, $format = 'string') + public function describeAction($data, $format = 'string'): array { $users = []; @@ -116,7 +116,7 @@ class ReferrerFilter implements FilterInterface /** * @inheritDoc */ - public function applyOn() + public function applyOn(): string { return Declarations::ACP_SHARED; } diff --git a/src/Bundle/ChillPersonBundle/Tests/Export/Filter/OpenBetweenDatesFilterTest.php b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/OpenBetweenDatesFilterTest.php new file mode 100644 index 000000000..ccb7e38da --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/OpenBetweenDatesFilterTest.php @@ -0,0 +1,66 @@ +prophesize(); + + $request->willExtend(Request::class); + $request->getLocale()->willReturn('fr'); + + $this->filter = self::$container->get('chill.person.export.filter_openbetweendates'); + } + + /** + * @inheritDoc + */ + public function getFilter() + { + return $this->filter; + } + + /** + * @inheritDoc + */ + public function getFormData(): array + { + return [ + [ + 'date_from' => \DateTime::createFromFormat('Y-m-d', '2022-05-01'), + 'date_to' => \DateTime::createFromFormat('Y-m-d', '2022-06-01'), + ], + ]; + } + + /** + * @inheritDoc + */ + public function getQueryBuilders(): array + { + if (null === self::$kernel) { + self::bootKernel(); + } + + $em = self::$container->get(EntityManagerInterface::class); + + return [ + $em->createQueryBuilder() + ->from('ChillPersonBundle:AccompanyingPeriod', 'acp') + ->select('acp.id'), + ]; + } +} \ No newline at end of file diff --git a/src/Bundle/ChillPersonBundle/Tests/Export/Filter/ReferrerFilterTest.php b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/ReferrerFilterTest.php new file mode 100644 index 000000000..ec84c7027 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/ReferrerFilterTest.php @@ -0,0 +1,82 @@ +prophesize(); + + $request->willExtend(Request::class); + $request->getLocale()->willReturn('fr'); + + $this->filter = self::$container->get('chill.person.export.filter_referrer'); + } + + /** + * @inheritDoc + */ + public function getFilter() + { + return $this->filter; + } + + /** + * @inheritDoc + */ + public function getFormData(): array + { + $em = self::$container->get(EntityManagerInterface::class); + + $array = $em->createQueryBuilder() + ->from(User::class, 'u') + ->select('u') + ->getQuery() + ->getResult(); + + $data = []; + + foreach($array as $u) { + $data[] = ['accepted_referrers' => $u]; + } + + return $data; + } + + /** + * @inheritDoc + */ + public function getQueryBuilders(): array + { + if (null === self::$kernel) { + self::bootKernel(); + } + + $em = self::$container->get(EntityManagerInterface::class); + + return [ + $em->createQueryBuilder() + ->from('ChillPersonBundle:AccompanyingPeriod', 'acp') + ->select('acp.id'), + $em->createQueryBuilder() + ->from('ChillPersonBundle:AccompanyingPeriod\AccompanyingPeriodWork', 'acpw') + ->select('acpw.id'), + $em->createQueryBuilder() + ->from('ChillPersonBundle:AccompanyingPeriod\AccompanyingPeriodWork', 'acpw') + ->join('acpw.referrers', 'r') + ->select('r.id'), + ]; + } +} \ No newline at end of file