tests: add missing FilterTest

This commit is contained in:
Mathieu Jaumotte 2022-08-04 09:15:05 +02:00
parent 28599adf48
commit ea1a53ed37
7 changed files with 439 additions and 1 deletions

View File

@ -25,7 +25,7 @@ class GeographicalUnitStatFilter implements FilterInterface
{
private const LOCTYPE = [
'center' => 'territoire',
'center' => 'center',
// TODO not yet implemented: https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/626
];

View File

@ -0,0 +1,77 @@
<?php
namespace Export\Filter;
use Chill\ActivityBundle\Entity\ActivityType;
use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Export\Filter\ActivityTypeFilter;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Request;
class ActivityTypeFilterTest extends AbstractFilterTest
{
private ActivityTypeFilter $filter;
protected function setUp(): void
{
//parent::setUp();
self::bootKernel();
// add a fake request with a default locale (used in translatable string)
$request = $this->prophesize();
$request->willExtend(Request::class);
$request->getLocale()->willReturn('fr');
$this->filter = self::$container->get('chill.person.export.filter_activitytype');
}
/**
* @inheritDoc
*/
public function getFilter()
{
return $this->filter;
}
/**
* @inheritDoc
*/
public function getFormData(): array
{
$em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder()
->from(ActivityType::class, 'at')
->select('at')
->getQuery()
->getResult();
$data = [];
foreach($array as $t) {
$data[] = ['accepted_activitytypes' => $t];
}
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'),
];
}
}

View File

@ -0,0 +1,76 @@
<?php
namespace Export\Filter;
use Chill\MainBundle\Entity\Location;
use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Export\Filter\AdministrativeLocationFilter;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Request;
class AdministrativeLocationFilterTest extends AbstractFilterTest
{
private AdministrativeLocationFilter $filter;
protected function setUp(): void
{
//parent::setUp();
self::bootKernel();
// add a fake request with a default locale (used in translatable string)
$request = $this->prophesize();
$request->willExtend(Request::class);
$request->getLocale()->willReturn('fr');
$this->filter = self::$container->get('chill.person.export.filter_administrative_location');
}
/**
* @inheritDoc
*/
public function getFilter()
{
return $this->filter;
}
/**
* @inheritDoc
*/
public function getFormData(): array
{
$em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder()
->from(Location::class, 'l')
->select('l')
->getQuery()
->getResult();
$data = [];
foreach($array as $l) {
$data[] = ['accepted_locations' => $l];
}
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'),
];
}
}

View File

@ -0,0 +1,76 @@
<?php
namespace Export\Filter;
use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\SocialWork\Evaluation;
use Chill\PersonBundle\Export\Filter\EvaluationFilter;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Request;
class EvaluationFilterTest extends AbstractFilterTest
{
private EvaluationFilter $filter;
protected function setUp(): void
{
//parent::setUp();
self::bootKernel();
// add a fake request with a default locale (used in translatable string)
$request = $this->prophesize();
$request->willExtend(Request::class);
$request->getLocale()->willReturn('fr');
$this->filter = self::$container->get('chill.person.export.filter_evaluation');
}
/**
* @inheritDoc
*/
public function getFilter()
{
return $this->filter;
}
/**
* @inheritDoc
*/
public function getFormData(): array
{
$em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder()
->from(Evaluation::class, 'ev')
->select('ev')
->getQuery()
->getResult();
$data = [];
foreach($array as $e) {
$data[] = ['accepted_evaluations' => $e];
}
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'),
];
}
}

View File

@ -0,0 +1,66 @@
<?php
namespace Export\Filter;
use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Export\Filter\GeographicalUnitStatFilter;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Request;
class GeographicalUnitStatFilterTest extends AbstractFilterTest
{
private GeographicalUnitStatFilter $filter;
protected function setUp(): void
{
//parent::setUp();
self::bootKernel();
// add a fake request with a default locale (used in translatable string)
$request = $this->prophesize();
$request->willExtend(Request::class);
$request->getLocale()->willReturn('fr');
$this->filter = self::$container->get('chill.person.export.filter_geographicalunitstat');
}
/**
* @inheritDoc
*/
public function getFilter()
{
return $this->filter;
}
/**
* @inheritDoc
*/
public function getFormData(): array
{
return [
[
'date' => \DateTime::createFromFormat('Y-m-d', '2022-05-01'),
'accepted_loctype' => 'center'
],
];
}
/**
* @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'),
];
}
}

View File

@ -0,0 +1,67 @@
<?php
namespace Export\Filter;
use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Export\Filter\RequestorFilter;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Request;
class RequestorFilterTest extends AbstractFilterTest
{
private RequestorFilter $filter;
protected function setUp(): void
{
//parent::setUp();
self::bootKernel();
// add a fake request with a default locale (used in translatable string)
$request = $this->prophesize();
$request->willExtend(Request::class);
$request->getLocale()->willReturn('fr');
$this->filter = self::$container->get('chill.person.export.filter_requestor');
}
/**
* @inheritDoc
*/
public function getFilter()
{
return $this->filter;
}
/**
* @inheritDoc
*/
public function getFormData(): array
{
return [
['accepted_choices' => 'participation'],
['accepted_choices' => 'other_person'],
['accepted_choices' => 'thirdparty'],
['accepted_choices' => 'no_requestor'],
];
}
/**
* @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'),
];
}
}

View File

@ -0,0 +1,76 @@
<?php
namespace Export\Filter;
use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\SocialWork\SocialAction;
use Chill\PersonBundle\Export\Filter\SocialActionFilter;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Request;
class SocialActionFilterTest extends AbstractFilterTest
{
private SocialActionFilter $filter;
protected function setUp(): void
{
//parent::setUp();
self::bootKernel();
// add a fake request with a default locale (used in translatable string)
$request = $this->prophesize();
$request->willExtend(Request::class);
$request->getLocale()->willReturn('fr');
$this->filter = self::$container->get('chill.person.export.filter_socialaction');
}
/**
* @inheritDoc
*/
public function getFilter()
{
return $this->filter;
}
/**
* @inheritDoc
*/
public function getFormData(): array
{
$em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder()
->from(SocialAction::class, 'sa')
->select('sa')
->getQuery()
->getResult();
$data = [];
foreach($array as $a) {
$data[] = ['accepted_socialactions' => $a];
}
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'),
];
}
}