From 287d8f546b26e99b4d83b3fcdf9b0eb4d68c2260 Mon Sep 17 00:00:00 2001 From: Mathieu Jaumotte Date: Tue, 26 Jul 2022 17:53:53 +0200 Subject: [PATCH] add simple test file for each new filter --- .../Export/Filter/ClosingMotiveFilterTest.php | 75 +++++++++++++++++ .../Export/Filter/ConfidentialFilterTest.php | 63 ++++++++++++++ .../Export/Filter/EmergencyFilterTest.php | 7 +- .../Export/Filter/IntensityFilterTest.php | 63 ++++++++++++++ .../Tests/Export/Filter/OriginFilterTest.php | 75 +++++++++++++++++ .../Export/Filter/SocialIssueFilterTest.php | 82 +++++++++++-------- .../Tests/Export/Filter/StepFilterTest.php | 64 +++++++++++++++ .../Tests/Export/Filter/UserJobFilterTest.php | 60 ++++++++++++++ .../Export/Filter/UserScopeFilterTest.php | 61 ++++++++++++++ 9 files changed, 512 insertions(+), 38 deletions(-) create mode 100644 src/Bundle/ChillPersonBundle/Tests/Export/Filter/ClosingMotiveFilterTest.php create mode 100644 src/Bundle/ChillPersonBundle/Tests/Export/Filter/ConfidentialFilterTest.php create mode 100644 src/Bundle/ChillPersonBundle/Tests/Export/Filter/IntensityFilterTest.php create mode 100644 src/Bundle/ChillPersonBundle/Tests/Export/Filter/OriginFilterTest.php create mode 100644 src/Bundle/ChillPersonBundle/Tests/Export/Filter/StepFilterTest.php create mode 100644 src/Bundle/ChillPersonBundle/Tests/Export/Filter/UserJobFilterTest.php create mode 100644 src/Bundle/ChillPersonBundle/Tests/Export/Filter/UserScopeFilterTest.php diff --git a/src/Bundle/ChillPersonBundle/Tests/Export/Filter/ClosingMotiveFilterTest.php b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/ClosingMotiveFilterTest.php new file mode 100644 index 000000000..cbfa1c306 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/ClosingMotiveFilterTest.php @@ -0,0 +1,75 @@ +prophesize(); + + $request->willExtend(\Symfony\Component\HttpFoundation\Request::class); + $request->getLocale()->willReturn('fr'); + + $this->filter = self::$container->get('chill.person.export.filter_closingmotive'); + } + + /** + * @inheritDoc + */ + public function getFilter() + { + return $this->filter; + } + + /** + * @inheritDoc + */ + public function getFormData(): array + { + $em = self::$container->get(EntityManagerInterface::class); + + $array = $em->createQueryBuilder() + ->from(ClosingMotive::class, 'm') + ->select('m') + ->getQuery() + ->getResult(); + + $data = []; + + foreach($array as $m) { + $data[] = ['accepted_closingmotives' => $m]; + } + + return $data; + } + + /** + * @inheritDoc + */ + public function getQueryBuilders(): array + { + + if (null === self::$kernel) { + self::bootKernel(); + } + + $em = self::$container->get(EntityManagerInterface::class); + + return [ + $em->createQueryBuilder() + ->select('acp.id') + ->from('ChillPersonBundle:AccompanyingPeriod', 'acp'), + ]; + } +} \ No newline at end of file diff --git a/src/Bundle/ChillPersonBundle/Tests/Export/Filter/ConfidentialFilterTest.php b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/ConfidentialFilterTest.php new file mode 100644 index 000000000..1d8573916 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/ConfidentialFilterTest.php @@ -0,0 +1,63 @@ +prophesize(); + + $request->willExtend(\Symfony\Component\HttpFoundation\Request::class); + $request->getLocale()->willReturn('fr'); + + $this->filter = self::$container->get('chill.person.export.filter_confidential'); + } + + /** + * @inheritDoc + */ + public function getFilter() + { + return $this->filter; + } + + /** + * @inheritDoc + */ + public function getFormData(): array + { + return [ + ['accepted_confidentials' => true], + ['accepted_confidentials' => false] + ]; + } + + /** + * @inheritDoc + */ + public function getQueryBuilders(): array + { + + if (null === self::$kernel) { + self::bootKernel(); + } + + $em = self::$container->get(EntityManagerInterface::class); + + return [ + $em->createQueryBuilder() + ->select('acp.id') + ->from('ChillPersonBundle:AccompanyingPeriod', 'acp'), + ]; + } +} \ No newline at end of file diff --git a/src/Bundle/ChillPersonBundle/Tests/Export/Filter/EmergencyFilterTest.php b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/EmergencyFilterTest.php index 0a0f2ae86..0533a604a 100644 --- a/src/Bundle/ChillPersonBundle/Tests/Export/Filter/EmergencyFilterTest.php +++ b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/EmergencyFilterTest.php @@ -4,6 +4,7 @@ namespace Chill\PersonBundle\Tests\Export\Filter; use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\PersonBundle\Export\Filter\EmergencyFilter; +use Doctrine\ORM\EntityManagerInterface; class EmergencyFilterTest extends AbstractFilterTest { @@ -27,7 +28,7 @@ class EmergencyFilterTest extends AbstractFilterTest return $this->filter; } - public function getFormData() + public function getFormData(): array { return [ ['accepted_emergencies' => true], @@ -35,14 +36,14 @@ class EmergencyFilterTest extends AbstractFilterTest ]; } - public function getQueryBuilders() + public function getQueryBuilders(): array { if (null === self::$kernel) { self::bootKernel(); } - $em = self::$container->get('doctrine.orm.entity_manager'); + $em = self::$container->get(EntityManagerInterface::class); return [ $em->createQueryBuilder() diff --git a/src/Bundle/ChillPersonBundle/Tests/Export/Filter/IntensityFilterTest.php b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/IntensityFilterTest.php new file mode 100644 index 000000000..c39602cf8 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/IntensityFilterTest.php @@ -0,0 +1,63 @@ +prophesize(); + + $request->willExtend(\Symfony\Component\HttpFoundation\Request::class); + $request->getLocale()->willReturn('fr'); + + $this->filter = self::$container->get('chill.person.export.filter_intensity'); + } + + /** + * @inheritDoc + */ + public function getFilter() + { + return $this->filter; + } + + /** + * @inheritDoc + */ + public function getFormData(): array + { + return [ + ['accepted_intensities' => 'occasional'], + ['accepted_intensities' => 'regular'] + ]; + } + + /** + * @inheritDoc + */ + public function getQueryBuilders(): array + { + + if (null === self::$kernel) { + self::bootKernel(); + } + + $em = self::$container->get(EntityManagerInterface::class); + + return [ + $em->createQueryBuilder() + ->select('acp.id') + ->from('ChillPersonBundle:AccompanyingPeriod', 'acp'), + ]; + } +} \ No newline at end of file diff --git a/src/Bundle/ChillPersonBundle/Tests/Export/Filter/OriginFilterTest.php b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/OriginFilterTest.php new file mode 100644 index 000000000..7aa1f1c7a --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/OriginFilterTest.php @@ -0,0 +1,75 @@ +prophesize(); + + $request->willExtend(\Symfony\Component\HttpFoundation\Request::class); + $request->getLocale()->willReturn('fr'); + + $this->filter = self::$container->get('chill.person.export.filter_origin'); + } + + /** + * @inheritDoc + */ + public function getFilter() + { + return $this->filter; + } + + /** + * @inheritDoc + */ + public function getFormData(): array + { + $em = self::$container->get(EntityManagerInterface::class); + + $array = $em->createQueryBuilder() + ->from(Origin::class, 'o') + ->select('o') + ->getQuery() + ->getResult(); + + $data = []; + + foreach($array as $l) { + $data[] = ['accepted_origins' => $l]; + } + + return $data; + } + + /** + * @inheritDoc + */ + public function getQueryBuilders(): array + { + + if (null === self::$kernel) { + self::bootKernel(); + } + + $em = self::$container->get(EntityManagerInterface::class); + + return [ + $em->createQueryBuilder() + ->select('acp.id') + ->from('ChillPersonBundle:AccompanyingPeriod', 'acp'), + ]; + } +} \ No newline at end of file diff --git a/src/Bundle/ChillPersonBundle/Tests/Export/Filter/SocialIssueFilterTest.php b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/SocialIssueFilterTest.php index ed520e90b..ac092884b 100644 --- a/src/Bundle/ChillPersonBundle/Tests/Export/Filter/SocialIssueFilterTest.php +++ b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/SocialIssueFilterTest.php @@ -1,63 +1,75 @@ filter = self::$container->get('chill.person.export.filter_socialissue'); - } catch (ServiceNotFoundException $e) { - $this->markTestSkipped('Filter service is not found'); - } + // add a fake request with a default locale (used in translatable string) + $request = $this->prophesize(); + + $request->willExtend(\Symfony\Component\HttpFoundation\Request::class); + $request->getLocale()->willReturn('fr'); + + $this->filter = self::$container->get('chill.person.export.filter_socialissue'); } + /** + * @inheritDoc + */ public function getFilter() { return $this->filter; } - public function getFormData() + /** + * @inheritDoc + */ + public function getFormData(): array { - return [ - ['accepted_socialissue' => [ + $em = self::$container->get(EntityManagerInterface::class); - ]], - ['accepted_socialissue' => [ + $array = $em->createQueryBuilder() + ->from(SocialIssue::class, 'si') + ->select('si') + ->getQuery() + ->getResult(); - ]], - ['accepted_socialissue' => [ + $data = []; - ]], - ]; + foreach($array as $i) { + $data[] = ['accepted_socialissues' => $i]; + } + + return $data; } - public function getQueryBuilders() + /** + * @inheritDoc + */ + public function getQueryBuilders(): array { - // TODO: Implement getQueryBuilders() method. - } + if (null === self::$kernel) { + self::bootKernel(); + } + + $em = self::$container->get(EntityManagerInterface::class); + + return [ + $em->createQueryBuilder() + ->select('acp.id') + ->from('ChillPersonBundle:AccompanyingPeriod', 'acp'), + ]; + } } \ No newline at end of file diff --git a/src/Bundle/ChillPersonBundle/Tests/Export/Filter/StepFilterTest.php b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/StepFilterTest.php new file mode 100644 index 000000000..1a8dfd2ff --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/StepFilterTest.php @@ -0,0 +1,64 @@ +prophesize(); + + $request->willExtend(\Symfony\Component\HttpFoundation\Request::class); + $request->getLocale()->willReturn('fr'); + + $this->filter = self::$container->get('chill.person.export.filter_step'); + } + + /** + * @inheritDoc + */ + public function getFilter() + { + return $this->filter; + } + + /** + * @inheritDoc + */ + public function getFormData(): array + { + return [ + ['accepted_steps' => AccompanyingPeriod::STEP_DRAFT], + ['accepted_steps' => AccompanyingPeriod::STEP_CONFIRMED], + ['accepted_steps' => AccompanyingPeriod::STEP_CLOSED], + ]; + } + + /** + * @inheritDoc + */ + public function getQueryBuilders(): array + { + + if (null === self::$kernel) { + self::bootKernel(); + } + + $em = self::$container->get('doctrine.orm.entity_manager'); + + return [ + $em->createQueryBuilder() + ->select('acp.id') + ->from('ChillPersonBundle:AccompanyingPeriod', 'acp'), + ]; + } +} \ No newline at end of file diff --git a/src/Bundle/ChillPersonBundle/Tests/Export/Filter/UserJobFilterTest.php b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/UserJobFilterTest.php new file mode 100644 index 000000000..452728384 --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/UserJobFilterTest.php @@ -0,0 +1,60 @@ +prophesize(); + + $request->willExtend(\Symfony\Component\HttpFoundation\Request::class); + $request->getLocale()->willReturn('fr'); + + $this->filter = self::$container->get('chill.person.export.filter_userjob'); + } + + /** + * @inheritDoc + */ + public function getFilter() + { + return $this->filter; + } + + /** + * @inheritDoc + */ + public function getFormData(): array + { + return []; + } + + /** + * @inheritDoc + */ + public function getQueryBuilders(): array + { + + if (null === self::$kernel) { + self::bootKernel(); + } + + $em = self::$container->get(EntityManagerInterface::class); + + return [ + $em->createQueryBuilder() + ->select('acp.id') + ->from('ChillPersonBundle:AccompanyingPeriod', 'acp'), + ]; + } +} \ No newline at end of file diff --git a/src/Bundle/ChillPersonBundle/Tests/Export/Filter/UserScopeFilterTest.php b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/UserScopeFilterTest.php new file mode 100644 index 000000000..fd22ded6e --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/UserScopeFilterTest.php @@ -0,0 +1,61 @@ +prophesize(); + + $request->willExtend(\Symfony\Component\HttpFoundation\Request::class); + $request->getLocale()->willReturn('fr'); + + $this->filter = self::$container->get('chill.person.export.filter_userscope'); + + } + + /** + * @inheritDoc + */ + public function getFilter() + { + return $this->filter; + } + + /** + * @inheritDoc + */ + public function getFormData(): array + { + return []; + } + + /** + * @inheritDoc + */ + public function getQueryBuilders(): array + { + + if (null === self::$kernel) { + self::bootKernel(); + } + + $em = self::$container->get(EntityManagerInterface::class); + + return [ + $em->createQueryBuilder() + ->select('acp.id') + ->from('ChillPersonBundle:AccompanyingPeriod', 'acp'), + ]; + } +} \ No newline at end of file