fix tests implementing AbstractFilterTest

This commit is contained in:
Julien Fastré 2023-09-01 13:51:02 +02:00
parent f8f04c69d0
commit a197a6b418
Signed by: julienfastre
GPG Key ID: BDE2190974723FCB
56 changed files with 447 additions and 373 deletions

View File

@ -21,8 +21,6 @@
</testsuite> </testsuite>
<testsuite name="PersonBundle"> <testsuite name="PersonBundle">
<directory suffix="Test.php">src/Bundle/ChillPersonBundle/Tests/</directory> <directory suffix="Test.php">src/Bundle/ChillPersonBundle/Tests/</directory>
<!-- test for export will be runned later -->
<exclude>src/Bundle/ChillPersonBundle/Tests/Export/*</exclude>
<!-- we are rewriting accompanying periods... Work in progress --> <!-- we are rewriting accompanying periods... Work in progress -->
<exclude>src/Bundle/ChillPersonBundle/Tests/Controller/AccompanyingPeriodControllerTest.php</exclude> <exclude>src/Bundle/ChillPersonBundle/Tests/Controller/AccompanyingPeriodControllerTest.php</exclude>
<!-- we are rewriting address, Work in progress --> <!-- we are rewriting address, Work in progress -->

View File

@ -37,8 +37,11 @@ use function count;
class PersonHavingActivityBetweenDateFilter implements ExportElementValidatedInterface, FilterInterface class PersonHavingActivityBetweenDateFilter implements ExportElementValidatedInterface, FilterInterface
{ {
public function __construct(protected TranslatableStringHelper $translatableStringHelper, protected ActivityReasonRepository $activityReasonRepository, protected TranslatorInterface $translator) public function __construct(
{ protected TranslatableStringHelper $translatableStringHelper,
protected ActivityReasonRepository $activityReasonRepository,
protected TranslatorInterface $translator
) {
} }
public function addRole(): ?string public function addRole(): ?string

View File

@ -41,6 +41,7 @@ final class ActivityTypeFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
@ -62,9 +63,7 @@ final class ActivityTypeFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);

View File

@ -13,6 +13,7 @@ namespace Chill\ActivityBundle\Tests\Export\Filter\ACPFilters;
use Chill\ActivityBundle\Entity\Activity; use Chill\ActivityBundle\Entity\Activity;
use Chill\ActivityBundle\Export\Filter\ACPFilters\ByCreatorFilter; use Chill\ActivityBundle\Export\Filter\ACPFilters\ByCreatorFilter;
use Chill\ActivityBundle\Export\Filter\ACPFilters\UserFilter;
use Chill\MainBundle\Entity\User; use Chill\MainBundle\Entity\User;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
@ -21,7 +22,7 @@ use Doctrine\ORM\EntityManagerInterface;
* @internal * @internal
* @coversNothing * @coversNothing
*/ */
final class ByUserFilterTest extends AbstractFilterTest final class ByCreatorFilterTest extends AbstractFilterTest
{ {
private ByCreatorFilter $filter; private ByCreatorFilter $filter;
@ -29,7 +30,7 @@ final class ByUserFilterTest extends AbstractFilterTest
{ {
self::bootKernel(); self::bootKernel();
$this->filter = self::$container->get('chill.activity.export.byuser_filter'); $this->filter = self::$container->get(ByCreatorFilter::class);
} }
public function getFilter() public function getFilter()
@ -39,12 +40,14 @@ final class ByUserFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
->from(User::class, 'u') ->from(User::class, 'u')
->select('u') ->select('u')
->getQuery() ->getQuery()
->setMaxResults(2)
->getResult(); ->getResult();
$data = []; $data = [];
@ -60,9 +63,7 @@ final class ByUserFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);

View File

@ -15,6 +15,7 @@ use Chill\ActivityBundle\Entity\Activity;
use Chill\ActivityBundle\Export\Filter\ACPFilters\BySocialActionFilter; use Chill\ActivityBundle\Export\Filter\ACPFilters\BySocialActionFilter;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\SocialWork\SocialAction; use Chill\PersonBundle\Entity\SocialWork\SocialAction;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
/** /**
@ -39,19 +40,22 @@ final class BySocialActionFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
->from(SocialAction::class, 'sa') ->from(SocialAction::class, 'sa')
->select('sa') ->select('sa')
->getQuery() ->getQuery()
->setMaxResults(4)
->getResult(); ->getResult();
$data = []; $data = [];
foreach ($array as $a) { foreach ($array as $a) {
$data[] = [ $data[] = [
'accepted_socialactions' => $a, 'accepted_socialactions' => new ArrayCollection([$a]),
]; ];
} }
@ -60,9 +64,7 @@ final class BySocialActionFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);

View File

@ -46,9 +46,7 @@ final class EmergencyFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);

View File

@ -39,12 +39,14 @@ final class LocationTypeFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
->from(LocationType::class, 'lt') ->from(LocationType::class, 'lt')
->select('lt') ->select('lt')
->getQuery() ->getQuery()
->setMaxResults(1)
->getResult(); ->getResult();
$data = []; $data = [];
@ -60,9 +62,7 @@ final class LocationTypeFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);

View File

@ -46,9 +46,7 @@ final class SentReceivedFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);

View File

@ -39,12 +39,14 @@ final class UserFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
->from(User::class, 'u') ->from(User::class, 'u')
->select('u') ->select('u')
->getQuery() ->getQuery()
->setMaxResults(1)
->getResult(); ->getResult();
$data = []; $data = [];
@ -60,9 +62,7 @@ final class UserFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);

View File

@ -39,12 +39,14 @@ final class UserScopeFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
->from(Scope::class, 's') ->from(Scope::class, 's')
->select('s') ->select('s')
->getQuery() ->getQuery()
->setMaxResults(1)
->getResult(); ->getResult();
$data = []; $data = [];
@ -60,9 +62,7 @@ final class UserScopeFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);

View File

@ -13,6 +13,7 @@ namespace Chill\ActivityBundle\Tests\Export\Filter;
use Chill\ActivityBundle\Entity\Activity; use Chill\ActivityBundle\Entity\Activity;
use Chill\ActivityBundle\Export\Filter\ActivityDateFilter; use Chill\ActivityBundle\Export\Filter\ActivityDateFilter;
use Chill\MainBundle\Service\RollingDate\RollingDate;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use DateTime; use DateTime;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
@ -41,24 +42,23 @@ final class ActivityDateFilterTest extends AbstractFilterTest
{ {
return [ return [
[ [
'date_from' => DateTime::createFromFormat('Y-m-d', '2020-01-01'), 'date_from' => new RollingDate(RollingDate::T_FIXED_DATE, \DateTimeImmutable::createFromFormat('Y-m-d', '2020-01-01')),
'date_to' => DateTime::createFromFormat('Y-m-d', '2021-01-01'), 'date_to' => new RollingDate(RollingDate::T_FIXED_DATE, \DateTimeImmutable::createFromFormat('Y-m-d', '2021-01-01')),
], ],
]; ];
} }
public function getQueryBuilders(): array public function getQueryBuilders(): iterable
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ yield
$em->createQueryBuilder() $em->createQueryBuilder()
->select('count(activity.id)') ->select('count(activity.id)')
->from(Activity::class, 'activity'), ->from(Activity::class, 'activity');
];
self::ensureKernelShutdown();
} }
} }

View File

@ -14,7 +14,9 @@ namespace Chill\ActivityBundle\Tests\Export\Filter;
use Chill\ActivityBundle\Export\Filter\PersonFilters\ActivityReasonFilter; use Chill\ActivityBundle\Export\Filter\PersonFilters\ActivityReasonFilter;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\EntityManagerInterface;
use Prophecy\PhpUnit\ProphecyTrait; use Prophecy\PhpUnit\ProphecyTrait;
use Symfony\Component\HttpFoundation\RequestStack;
/** /**
* @internal * @internal
@ -37,7 +39,7 @@ final class ActivityReasonFilterTest extends AbstractFilterTest
$request->getLocale()->willReturn('fr'); $request->getLocale()->willReturn('fr');
self::$container->get('request_stack') self::$container->get(RequestStack::class)
->push($request->reveal()); ->push($request->reveal());
} }
@ -48,12 +50,10 @@ final class ActivityReasonFilterTest extends AbstractFilterTest
public function getFormData() public function getFormData()
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$kernel->getContainer() $em = self::$container
->get('doctrine.orm.entity_manager'); ->get(EntityManagerInterface::class);
$reasons = $em->createQuery('SELECT reason ' $reasons = $em->createQuery('SELECT reason '
. 'FROM ChillActivityBundle:ActivityReason reason') . 'FROM ChillActivityBundle:ActivityReason reason')
@ -61,34 +61,31 @@ final class ActivityReasonFilterTest extends AbstractFilterTest
// generate an array of 5 different combination of results // generate an array of 5 different combination of results
for ($i = 0; 5 > $i; ++$i) { for ($i = 0; 5 > $i; ++$i) {
$r[] = ['reasons' => new ArrayCollection(array_splice($reasons, ($i + 1) * -1))]; yield ['reasons' => new ArrayCollection(array_splice($reasons, ($i + 1) * -1))];
} }
return $r; self::ensureKernelShutdown();
} }
public function getQueryBuilders() public function getQueryBuilders(): iterable
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$kernel->getContainer() $em = self::$container->get(EntityManagerInterface::class);
->get('doctrine.orm.entity_manager');
return [ yield $em->createQueryBuilder()
$em->createQueryBuilder()
->select('count(activity.id)') ->select('count(activity.id)')
->from('ChillActivityBundle:Activity', 'activity'), ->from('ChillActivityBundle:Activity', 'activity');
$em->createQueryBuilder() yield $em->createQueryBuilder()
->select('count(activity.id)') ->select('count(activity.id)')
->from('ChillActivityBundle:Activity', 'activity') ->from('ChillActivityBundle:Activity', 'activity')
->join('activity.reasons', 'reasons'), ->join('activity.reasons', 'reasons');
$em->createQueryBuilder() yield $em->createQueryBuilder()
->select('count(activity.id)') ->select('count(activity.id)')
->from('ChillActivityBundle:Activity', 'activity') ->from('ChillActivityBundle:Activity', 'activity')
->join('activity.reasons', 'reasons') ->join('activity.reasons', 'reasons')
->join('reasons.category', 'category'), ->join('reasons.category', 'category');
];
self::ensureKernelShutdown();
} }
} }

View File

@ -15,6 +15,7 @@ use Chill\ActivityBundle\Entity\Activity;
use Chill\ActivityBundle\Entity\ActivityType; use Chill\ActivityBundle\Entity\ActivityType;
use Chill\ActivityBundle\Export\Filter\ActivityTypeFilter; use Chill\ActivityBundle\Export\Filter\ActivityTypeFilter;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
/** /**
@ -37,8 +38,10 @@ final class ActivityTypeFilterTest extends AbstractFilterTest
return $this->filter; return $this->filter;
} }
public function getFormData(): array public function getFormData(): iterable
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
@ -51,25 +54,24 @@ final class ActivityTypeFilterTest extends AbstractFilterTest
foreach ($array as $a) { foreach ($array as $a) {
$data[] = [ $data[] = [
'types' => $a, 'types' => new ArrayCollection([$a]),
]; ];
} }
return $data; return $data;
} }
public function getQueryBuilders(): array public function getQueryBuilders(): iterable
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ yield
$em->createQueryBuilder() $em->createQueryBuilder()
->select('count(activity.id)') ->select('count(activity.id)')
->from(Activity::class, 'activity'), ->from(Activity::class, 'activity');
];
self::ensureKernelShutdown();
} }
} }

View File

@ -15,6 +15,7 @@ use Chill\ActivityBundle\Entity\Activity;
use Chill\ActivityBundle\Entity\ActivityReason; use Chill\ActivityBundle\Entity\ActivityReason;
use Chill\ActivityBundle\Export\Filter\PersonFilters\ActivityReasonFilter; use Chill\ActivityBundle\Export\Filter\PersonFilters\ActivityReasonFilter;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
/** /**
@ -39,19 +40,21 @@ final class ActivityReasonFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
->from(ActivityReason::class, 'ar') ->from(ActivityReason::class, 'ar')
->select('ar') ->select('ar')
->getQuery() ->getQuery()
->setMaxResults(1)
->getResult(); ->getResult();
$data = []; $data = [];
foreach ($array as $a) { foreach ($array as $a) {
$data[] = [ $data[] = [
'reasons' => $a, 'reasons' => new ArrayCollection([$a]),
]; ];
} }
@ -60,9 +63,7 @@ final class ActivityReasonFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);

View File

@ -40,12 +40,14 @@ final class PersonHavingActivityBetweenDateFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
->from(ActivityReason::class, 'ar') ->from(ActivityReason::class, 'ar')
->select('ar') ->select('ar')
->getQuery() ->getQuery()
->setMaxResults(1)
->getResult(); ->getResult();
$data = []; $data = [];

View File

@ -12,8 +12,13 @@ declare(strict_types=1);
namespace Chill\ActivityBundle\Tests\Export\Filter; namespace Chill\ActivityBundle\Tests\Export\Filter;
use Chill\ActivityBundle\Export\Filter\PersonFilters\PersonHavingActivityBetweenDateFilter; use Chill\ActivityBundle\Export\Filter\PersonFilters\PersonHavingActivityBetweenDateFilter;
use Chill\ActivityBundle\Repository\ActivityReasonRepository;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use DateTime; use DateTime;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;
use function array_slice; use function array_slice;
/** /**
@ -35,7 +40,7 @@ final class PersonHavingActivityBetweenDateFilterTest extends AbstractFilterTest
$request->getLocale()->willReturn('fr'); $request->getLocale()->willReturn('fr');
self::$container->get('request_stack') self::$container->get(RequestStack::class)
->push($request->reveal()); ->push($request->reveal());
} }
@ -65,26 +70,24 @@ final class PersonHavingActivityBetweenDateFilterTest extends AbstractFilterTest
public function getQueryBuilders() public function getQueryBuilders()
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$kernel->getContainer() $em = self::$container
->get('doctrine.orm.entity_manager'); ->get(EntityManagerInterface::class);
return [ yield $em->createQueryBuilder()
$em->createQueryBuilder()
->select('count(person.id)') ->select('count(person.id)')
->from('ChillPersonBundle:Person', 'person') ->from('ChillPersonBundle:Person', 'person')
// add a fake where clause // add a fake where clause
->where('person.id > 0'), ->where('person.id > 0');
$em->createQueryBuilder() yield $em->createQueryBuilder()
->select('count(person.id)') ->select('count(person.id)')
->from('ChillActivityBundle:Activity', 'activity') ->from('ChillActivityBundle:Activity', 'activity')
->join('activity.person', 'person') ->join('activity.person', 'person')
// add a fake where clause // add a fake where clause
->where('person.id > 0'), ->where('person.id > 0');
];
self::ensureKernelShutdown();
} }
/** /**
@ -94,12 +97,14 @@ final class PersonHavingActivityBetweenDateFilterTest extends AbstractFilterTest
*/ */
private function getActivityReasons() private function getActivityReasons()
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
return self::$kernel->getContainer() $managerRegistry = self::$container->get(ManagerRegistry::class);
->get('chill_activity.repository.reason') $requestStack = new RequestStack();
->findAll(); $requestStack->push(new Request());
$repository = new ActivityReasonRepository($managerRegistry, $requestStack);
return $repository->findAll();
} }
} }

View File

@ -63,9 +63,7 @@ final class BetweenDatesFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);

View File

@ -50,32 +50,24 @@ final class JobFilterTest extends AbstractFilterTest
return $this->filter; return $this->filter;
} }
public function getFormData(): array public function getFormData(): iterable
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
->from(UserJob::class, 'uj') ->from(UserJob::class, 'uj')
->select('uj') ->select('uj')
->getQuery() ->getQuery()
->setMaxResults(1)
->getResult(); ->getResult();
$data = []; yield ['job' => $array];
foreach ($array as $a) {
$data[] = [
'job' => $a,
];
}
return $data;
} }
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
@ -83,7 +75,6 @@ final class JobFilterTest extends AbstractFilterTest
$em->createQueryBuilder() $em->createQueryBuilder()
->select('cal.id') ->select('cal.id')
->from(Calendar::class, 'cal') ->from(Calendar::class, 'cal')
->join('cal.user', 'caluser'),
]; ];
} }
} }

View File

@ -52,12 +52,14 @@ final class ScopeFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
->from(Scope::class, 's') ->from(Scope::class, 's')
->select('s') ->select('s')
->getQuery() ->getQuery()
->setMaxResults(1)
->getResult(); ->getResult();
$data = []; $data = [];
@ -73,9 +75,7 @@ final class ScopeFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
@ -83,7 +83,6 @@ final class ScopeFilterTest extends AbstractFilterTest
$em->createQueryBuilder() $em->createQueryBuilder()
->select('cal.id') ->select('cal.id')
->from(Calendar::class, 'cal') ->from(Calendar::class, 'cal')
->join('cal.user', 'caluser'),
]; ];
} }
} }

View File

@ -23,8 +23,6 @@ use function is_string;
/** /**
* Helper to test filters. * Helper to test filters.
*
* @internal
*/ */
abstract class AbstractFilterTest extends KernelTestCase abstract class AbstractFilterTest extends KernelTestCase
{ {
@ -50,18 +48,45 @@ abstract class AbstractFilterTest extends KernelTestCase
*/ */
public function dataProviderAliasDidNotDisappears() public function dataProviderAliasDidNotDisappears()
{ {
$datas = $this->getFormData();
foreach ($this->getQueryBuilders() as $qb) { foreach ($this->getQueryBuilders() as $qb) {
foreach ($this->getFormData() as $data) { if ([] === $datas) {
yield [clone $qb, []];
} else {
foreach ($datas as $data) {
yield [clone $qb, $data]; yield [clone $qb, $data];
} }
} }
} }
}
public function dataProviderAlterQuery() public function dataProviderAlterQuery()
{ {
$datas = $this->getFormData();
foreach ($this->getQueryBuilders() as $qb) { foreach ($this->getQueryBuilders() as $qb) {
foreach ($this->getFormData() as $data) { if ([] === $datas) {
yield [$qb, $data]; yield [clone $qb, []];
} else {
foreach ($datas as $data) {
yield [clone $qb, $data];
}
}
}
}
public function dataProvideQueryExecution(): iterable
{
$datas = $this->getFormData();
foreach ($this->getQueryBuilders() as $qb) {
if ([] === $datas) {
yield [clone $qb, []];
} else {
foreach ($datas as $data) {
yield [clone $qb, $data];
}
} }
} }
} }
@ -108,10 +133,8 @@ abstract class AbstractFilterTest extends KernelTestCase
* Compare aliases array before and after that filter alter query. * Compare aliases array before and after that filter alter query.
* *
* @dataProvider dataProviderAliasDidNotDisappears * @dataProvider dataProviderAliasDidNotDisappears
*
* @return void
*/ */
public function testAliasDidNotDisappears(QueryBuilder $qb, array $data) public function testAliasDidNotDisappears(QueryBuilder $qb, array $data): void
{ {
$aliases = $qb->getAllAliases(); $aliases = $qb->getAllAliases();
@ -131,9 +154,8 @@ abstract class AbstractFilterTest extends KernelTestCase
* *
* @dataProvider dataProviderAlterQuery * @dataProvider dataProviderAlterQuery
* *
* @param type $data
*/ */
public function testAlterQuery(QueryBuilder $query, $data) public function testAlterQuery(QueryBuilder $query, array $data)
{ {
// retains informations about query // retains informations about query
$nbOfFrom = $query->getDQLPart('from') !== null ? $nbOfFrom = $query->getDQLPart('from') !== null ?
@ -164,6 +186,18 @@ abstract class AbstractFilterTest extends KernelTestCase
); );
} }
/**
* @dataProvider dataProvideQueryExecution
*/
public function testQueryExecution(QueryBuilder $qb, mixed $data): void
{
$this->getFilter()->alterQuery($qb, $data);
$actual = $qb->getQuery()->getResult();
self::assertIsArray($actual);
}
public function testApplyOn() public function testApplyOn()
{ {
$filter = $this->getFilter(); $filter = $this->getFilter();

View File

@ -79,7 +79,7 @@ class ReferrerFilter implements FilterInterface
} }
public function getFormDefaultData(): array public function getFormDefaultData(): array
{ {
return ['date_calc' => new RollingDate(RollingDate::T_TODAY)]; return ['date_calc' => new RollingDate(RollingDate::T_TODAY), 'accepted_referrers' => []];
} }
public function describeAction($data, $format = 'string'): array public function describeAction($data, $format = 'string'): array

View File

@ -11,7 +11,9 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters; namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters;
use Chill\MainBundle\Service\RollingDate\RollingDate;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\ActiveOnDateFilter; use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\ActiveOnDateFilter;
use DateTime; use DateTime;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
@ -40,22 +42,20 @@ final class ActiveOnDateFilterTest extends AbstractFilterTest
{ {
return [ return [
[ [
'on_date' => DateTime::createFromFormat('Y-m-d', '2022-05-01'), 'on_date' => new RollingDate(RollingDate::T_FIXED_DATE, \DateTimeImmutable::createFromFormat('Y-m-d', '2022-05-01')),
], ],
]; ];
} }
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->from('ChillPersonBundle:AccompanyingPeriod', 'acp') ->from(AccompanyingPeriod::class, 'acp')
->select('acp.id'), ->select('acp.id'),
]; ];
} }

View File

@ -11,7 +11,9 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters; namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters;
use Chill\MainBundle\Service\RollingDate\RollingDate;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\ActiveOneDayBetweenDatesFilter; use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\ActiveOneDayBetweenDatesFilter;
use DateTime; use DateTime;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
@ -40,24 +42,22 @@ final class ActiveOneDayBetweenDatesFilterTest extends AbstractFilterTest
{ {
return [ return [
[ [
'date_from' => DateTime::createFromFormat('Y-m-d', '2022-05-01'), 'date_from' => new RollingDate(RollingDate::T_FIXED_DATE, \DateTimeImmutable::createFromFormat('Y-m-d', '2022-05-01')),
'date_to' => DateTime::createFromFormat('Y-m-d', '2022-06-01'), 'date_to' => new RollingDate(RollingDate::T_FIXED_DATE, \DateTimeImmutable::createFromFormat('Y-m-d', '2022-06-01')),
], ],
]; ];
} }
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->from('ChillPersonBundle:AccompanyingPeriod', 'acp') ->from(AccompanyingPeriod::class, 'acp')
->select('acp.id'), ->select('count(distinct acp)'),
]; ];
} }
} }

View File

@ -38,12 +38,14 @@ final class AdministrativeLocationFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
->from(Location::class, 'l') ->from(Location::class, 'l')
->select('l') ->select('l')
->getQuery() ->getQuery()
->setMaxResults(1)
->getResult(); ->getResult();
$data = []; $data = [];
@ -57,9 +59,7 @@ final class AdministrativeLocationFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);

View File

@ -12,6 +12,7 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters; namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Entity\AccompanyingPeriod\ClosingMotive; use Chill\PersonBundle\Entity\AccompanyingPeriod\ClosingMotive;
use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\ClosingMotiveFilter; use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\ClosingMotiveFilter;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
@ -38,6 +39,7 @@ final class ClosingMotiveFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
@ -57,16 +59,14 @@ final class ClosingMotiveFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->select('acp.id') ->select('acp.id')
->from('ChillPersonBundle:AccompanyingPeriod', 'acp'), ->from(AccompanyingPeriod::class, 'acp'),
]; ];
} }
} }

View File

@ -45,9 +45,7 @@ final class ConfidentialFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);

View File

@ -38,16 +38,14 @@ final class EmergencyFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
return [ return [
['accepted_emergencies' => true], ['accepted_emergency' => true],
['accepted_emergencies' => false], ['accepted_emergency' => false],
]; ];
} }
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);

View File

@ -38,12 +38,14 @@ final class EvaluationFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
->from(Evaluation::class, 'ev') ->from(Evaluation::class, 'ev')
->select('ev') ->select('ev')
->getQuery() ->getQuery()
->setMaxResults(1)
->getResult(); ->getResult();
$data = []; $data = [];
@ -57,9 +59,7 @@ final class EvaluationFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);

View File

@ -11,7 +11,11 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters; namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters;
use Chill\MainBundle\Entity\GeographicalUnit;
use Chill\MainBundle\Repository\GeographicalUnitRepositoryInterface;
use Chill\MainBundle\Service\RollingDate\RollingDate;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\GeographicalUnitStatFilter; use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\GeographicalUnitStatFilter;
use DateTime; use DateTime;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
@ -38,25 +42,28 @@ final class GeographicalUnitStatFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
self::bootKernel();
$repo = self::$container->get(GeographicalUnitRepositoryInterface::class);
$units = $repo->findAll();
return [ return [
[ [
'date' => DateTime::createFromFormat('Y-m-d', '2022-05-01'), 'date_calc' => new RollingDate(RollingDate::T_TODAY),
'accepted_loctype' => 'center', 'units' => $units
], ],
]; ];
} }
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->from('ChillPersonBundle:AccompanyingPeriod', 'acp') ->from(AccompanyingPeriod::class, 'acp')
->select('acp.id'), ->select('acp.id'),
]; ];
} }

View File

@ -12,6 +12,7 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters; namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\IntensityFilter; use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\IntensityFilter;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
@ -45,16 +46,14 @@ final class IntensityFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->select('acp.id') ->select('acp.id')
->from('ChillPersonBundle:AccompanyingPeriod', 'acp'), ->from(AccompanyingPeriod::class, 'acp'),
]; ];
} }
} }

View File

@ -11,7 +11,9 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters; namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters;
use Chill\MainBundle\Service\RollingDate\RollingDate;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\OpenBetweenDatesFilter; use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\OpenBetweenDatesFilter;
use DateTime; use DateTime;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
@ -40,23 +42,21 @@ final class OpenBetweenDatesFilterTest extends AbstractFilterTest
{ {
return [ return [
[ [
'date_from' => DateTime::createFromFormat('Y-m-d', '2022-05-01'), 'date_from' => new RollingDate(RollingDate::T_YEAR_PREVIOUS_START),
'date_to' => DateTime::createFromFormat('Y-m-d', '2022-06-01'), 'date_to' => new RollingDate(RollingDate::T_TODAY),
], ],
]; ];
} }
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->from('ChillPersonBundle:AccompanyingPeriod', 'acp') ->from(AccompanyingPeriod::class, 'acp')
->select('acp.id'), ->select('acp.id'),
]; ];
} }

View File

@ -12,6 +12,7 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters; namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Entity\AccompanyingPeriod\Origin; use Chill\PersonBundle\Entity\AccompanyingPeriod\Origin;
use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\OriginFilter; use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\OriginFilter;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
@ -38,12 +39,14 @@ final class OriginFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
->from(Origin::class, 'o') ->from(Origin::class, 'o')
->select('o') ->select('o')
->getQuery() ->getQuery()
->setMaxResults(1)
->getResult(); ->getResult();
$data = []; $data = [];
@ -57,16 +60,14 @@ final class OriginFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->select('acp.id') ->select('acp.id')
->from('ChillPersonBundle:AccompanyingPeriod', 'acp'), ->from(AccompanyingPeriod::class, 'acp'),
]; ];
} }
} }

View File

@ -12,7 +12,11 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters; namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters;
use Chill\MainBundle\Entity\User; use Chill\MainBundle\Entity\User;
use Chill\MainBundle\Service\RollingDate\RollingDate;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Entity\Person\PersonCenterHistory;
use Chill\PersonBundle\Export\Export\CountAccompanyingPeriodWork;
use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\ReferrerFilter; use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\ReferrerFilter;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
@ -38,42 +42,46 @@ final class ReferrerFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
self:self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
->from(User::class, 'u') ->from(User::class, 'u')
->select('u') ->select('u')
->getQuery() ->getQuery()
->setMaxResults(1)
->getResult(); ->getResult();
$data = []; $data = [];
foreach ($array as $u) { foreach ($array as $u) {
$data[] = ['accepted_referrers' => $u]; $data[] = ['accepted_referrers' => $u, 'date_calc' => new RollingDate(RollingDate::T_TODAY)];
} }
return $data; return $data;
} }
public function getQueryBuilders(): array public function getQueryBuilders(): iterable
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ yield $em->createQueryBuilder()
$em->createQueryBuilder() ->from(AccompanyingPeriod::class, 'acp')
->from('ChillPersonBundle:AccompanyingPeriod', 'acp') ->select('acp.id');
->select('acp.id'),
$em->createQueryBuilder() $qb = $em->createQueryBuilder();
->from('ChillPersonBundle:AccompanyingPeriod\AccompanyingPeriodWork', 'acpw') $qb
->select('acpw.id'), ->from(AccompanyingPeriod\AccompanyingPeriodWork::class, 'acpw')
$em->createQueryBuilder() ->join('acpw.accompanyingPeriod', 'acp')
->from('ChillPersonBundle:AccompanyingPeriod\AccompanyingPeriodWork', 'acpw') ->join('acp.participations', 'acppart')
->join('acpw.referrers', 'acpwuser') ->join('acppart.person', 'person')
->select('acpwuser.id'), ;
];
$qb->select('COUNT(DISTINCT acpw.id) as export_result');
yield $qb;
} }
} }

View File

@ -12,6 +12,7 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters; namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\RequestorFilter; use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\RequestorFilter;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
@ -47,15 +48,13 @@ final class RequestorFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->from('ChillPersonBundle:AccompanyingPeriod', 'acp') ->from(AccompanyingPeriod::class, 'acp')
->select('acp.id'), ->select('acp.id'),
]; ];
} }

View File

@ -12,6 +12,7 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters; namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Entity\SocialWork\SocialAction; use Chill\PersonBundle\Entity\SocialWork\SocialAction;
use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\SocialActionFilter; use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\SocialActionFilter;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
@ -36,36 +37,30 @@ final class SocialActionFilterTest extends AbstractFilterTest
return $this->filter; return $this->filter;
} }
public function getFormData(): array public function getFormData(): iterable
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
->from(SocialAction::class, 'sa') ->from(SocialAction::class, 'sa')
->select('sa') ->select('sa')
->getQuery() ->getQuery()
->setMaxResults(1)
->getResult(); ->getResult();
$data = []; yield ['accepted_socialactions' => $array];
foreach ($array as $a) {
$data[] = ['accepted_socialactions' => $a];
}
return $data;
} }
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->from('ChillPersonBundle:AccompanyingPeriod', 'acp') ->from(AccompanyingPeriod::class, 'acp')
->select('acp.id'), ->select('acp.id'),
]; ];
} }

View File

@ -12,8 +12,10 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters; namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Entity\SocialWork\SocialIssue; use Chill\PersonBundle\Entity\SocialWork\SocialIssue;
use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\SocialIssueFilter; use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\SocialIssueFilter;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
/** /**
@ -36,37 +38,31 @@ final class SocialIssueFilterTest extends AbstractFilterTest
return $this->filter; return $this->filter;
} }
public function getFormData(): array public function getFormData(): iterable
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
->from(SocialIssue::class, 'si') ->from(SocialIssue::class, 'si')
->select('si') ->select('si')
->getQuery() ->getQuery()
->setMaxResults(1)
->getResult(); ->getResult();
$data = []; yield ['accepted_socialissues' => new ArrayCollection($array)];
foreach ($array as $i) {
$data[] = ['accepted_socialissues' => $i];
}
return $data;
} }
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->select('acp.id') ->select('acp.id')
->from('ChillPersonBundle:AccompanyingPeriod', 'acp'), ->from(AccompanyingPeriod::class, 'acp'),
]; ];
} }
} }

View File

@ -11,9 +11,11 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters; namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters;
use Chill\MainBundle\Service\RollingDate\RollingDate;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\AccompanyingPeriod; use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\StepFilterOnDate; use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\StepFilterOnDate;
use Doctrine\ORM\EntityManagerInterface;
/** /**
* @internal * @internal
@ -27,7 +29,7 @@ final class StepFilterTest extends AbstractFilterTest
{ {
self::bootKernel(); self::bootKernel();
$this->filter = self::$container->get('chill.person.export.filter_step'); $this->filter = self::$container->get(StepFilterOnDate::class);
} }
public function getFilter() public function getFilter()
@ -35,29 +37,29 @@ final class StepFilterTest extends AbstractFilterTest
return $this->filter; return $this->filter;
} }
public function getFormData(): array public function getFormData(): iterable
{ {
return [ foreach ([
['accepted_steps' => AccompanyingPeriod::STEP_DRAFT], ['accepted_steps_multi' => [AccompanyingPeriod::STEP_DRAFT]],
['accepted_steps' => AccompanyingPeriod::STEP_CONFIRMED], ['accepted_steps_multi' => [AccompanyingPeriod::STEP_CONFIRMED]],
['accepted_steps' => AccompanyingPeriod::STEP_CONFIRMED_INACTIVE_LONG], ['accepted_steps_multi' => [AccompanyingPeriod::STEP_CONFIRMED_INACTIVE_LONG]],
['accepted_steps' => AccompanyingPeriod::STEP_CONFIRMED_INACTIVE_SHORT], ['accepted_steps_multi' => [AccompanyingPeriod::STEP_CONFIRMED_INACTIVE_SHORT]],
['accepted_steps' => AccompanyingPeriod::STEP_CLOSED], ['accepted_steps_multi' => [AccompanyingPeriod::STEP_CLOSED]],
]; ] as $d) {
yield ['calc_date' => new RollingDate(RollingDate::T_TODAY), ...$d] ;
}
} }
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get('doctrine.orm.entity_manager'); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->select('acp.id') ->select('acp.id')
->from('ChillPersonBundle:AccompanyingPeriod', 'acp'), ->from(AccompanyingPeriod::class, 'acp'),
]; ];
} }
} }

View File

@ -11,15 +11,19 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters; namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters;
use Chill\MainBundle\Entity\UserJob;
use Chill\MainBundle\Service\RollingDate\RollingDate;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\UserJobFilter; use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\UserJobFilter;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
/** /**
* @internal * @internal
* @coversNothing * @coversNothing
*/ */
final class CurrentUserJobFilterTest extends AbstractFilterTest final class UserJobFilterTest extends AbstractFilterTest
{ {
private UserJobFilter $filter; private UserJobFilter $filter;
@ -27,7 +31,7 @@ final class CurrentUserJobFilterTest extends AbstractFilterTest
{ {
self::bootKernel(); self::bootKernel();
$this->filter = self::$container->get('chill.person.export.filter_userjob'); $this->filter = self::$container->get(UserJobFilter::class);
} }
public function getFilter() public function getFilter()
@ -35,23 +39,30 @@ final class CurrentUserJobFilterTest extends AbstractFilterTest
return $this->filter; return $this->filter;
} }
public function getFormData(): array public function getFormData(): iterable
{ {
return []; self::bootKernel();
$jobs = self::$container->get(EntityManagerInterface::class)
->createQuery('SELECT j FROM ' . UserJob::class . ' j')
->setMaxResults(1)
->getResult();
yield [
'jobs' => new ArrayCollection($jobs),
'date_calc' => new RollingDate(RollingDate::T_TODAY)
];
} }
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->select('acp.id') ->select('acp.id')
->from('ChillPersonBundle:AccompanyingPeriod', 'acp'), ->from(AccompanyingPeriod::class, 'acp'),
]; ];
} }
} }

View File

@ -11,15 +11,19 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters; namespace Chill\PersonBundle\Tests\Export\Filter\AccompanyingCourseFilters;
use Chill\MainBundle\Entity\Scope;
use Chill\MainBundle\Service\RollingDate\RollingDate;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\UserScopeFilter; use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\UserScopeFilter;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
/** /**
* @internal * @internal
* @coversNothing * @coversNothing
*/ */
final class CurrentUserScopeFilterTest extends AbstractFilterTest final class UserScopeFilterTest extends AbstractFilterTest
{ {
private UserScopeFilter $filter; private UserScopeFilter $filter;
@ -27,7 +31,7 @@ final class CurrentUserScopeFilterTest extends AbstractFilterTest
{ {
self::bootKernel(); self::bootKernel();
$this->filter = self::$container->get('chill.person.export.filter_userscope'); $this->filter = self::$container->get(UserScopeFilter::class);
} }
public function getFilter() public function getFilter()
@ -37,21 +41,30 @@ final class CurrentUserScopeFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
return []; self::bootKernel();
$scopes = self::$container->get(EntityManagerInterface::class)
->createQuery('SELECT s FROM ' . Scope::class . ' s')
->setMaxResults(1)
->getResult();
return [
[
'date_calc' => new RollingDate(RollingDate::T_TODAY),
'scopes' => new ArrayCollection($scopes),
]
];
} }
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->select('acp.id') ->select('acp.id')
->from('ChillPersonBundle:AccompanyingPeriod', 'acp'), ->from(AccompanyingPeriod::class, 'acp'),
]; ];
} }
} }

View File

@ -39,12 +39,14 @@ final class EvaluationTypeFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
->from(Evaluation::class, 'e') ->from(Evaluation::class, 'e')
->select('e') ->select('e')
->getQuery() ->getQuery()
->setMaxResults(1)
->getResult(); ->getResult();
$data = []; $data = [];
@ -60,18 +62,16 @@ final class EvaluationTypeFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->select('workeval.id') ->select('eval.id')
->from(AccompanyingPeriod::class, 'acp') ->from(AccompanyingPeriod::class, 'acp')
->join('acp.works', 'acpw') ->join('acp.works', 'acpw')
->join('acpw.accompanyingPeriodWorkEvaluations', 'workeval'), ->join('acpw.accompanyingPeriodWorkEvaluations', 'eval'),
]; ];
} }
} }

View File

@ -46,9 +46,7 @@ final class MaxDateFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);

View File

@ -11,9 +11,11 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\HouseholdFilters; namespace Chill\PersonBundle\Tests\Export\Filter\HouseholdFilters;
use Chill\MainBundle\Service\RollingDate\RollingDate;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\Household\Household; use Chill\PersonBundle\Entity\Household\Household;
use Chill\PersonBundle\Entity\Household\HouseholdCompositionType; use Chill\PersonBundle\Entity\Household\HouseholdCompositionType;
use Chill\PersonBundle\Entity\Person\PersonCenterHistory;
use Chill\PersonBundle\Export\Filter\HouseholdFilters\CompositionFilter; use Chill\PersonBundle\Export\Filter\HouseholdFilters\CompositionFilter;
use DateTime; use DateTime;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
@ -40,12 +42,14 @@ final class CompositionFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
->from(HouseholdCompositionType::class, 'r') ->from(HouseholdCompositionType::class, 'r')
->select('r') ->select('r')
->getQuery() ->getQuery()
->setMaxResults(1)
->getResult(); ->getResult();
$data = []; $data = [];
@ -53,25 +57,33 @@ final class CompositionFilterTest extends AbstractFilterTest
foreach ($array as $r) { foreach ($array as $r) {
$data[] = [ $data[] = [
'accepted_composition' => $r, 'accepted_composition' => $r,
'on_date' => DateTime::createFromFormat('Y-m-d', '2022-05-01'), 'on_date' => new RollingDate(RollingDate::T_TODAY),
]; ];
} }
return $data; return $data;
} }
public function getQueryBuilders(): array public function getQueryBuilders(): iterable
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$qb = $em->createQueryBuilder();
$qb
->from(Household::class, 'household')
->join('household.members', 'hmember')
->join('hmember.person', 'person')
->join('person.accompanyingPeriodParticipations', 'acppart')
->join('acppart.accompanyingPeriod', 'acp')
->andWhere('acppart.startDate != acppart.endDate OR acppart.endDate IS NULL')
->andWhere('hmember.startDate <= :count_household_at_date AND (hmember.endDate IS NULL OR hmember.endDate > :count_household_at_date)')
->setParameter('count_household_at_date', new \DateTimeImmutable('today'));
return [ $qb
$em->createQueryBuilder() ->select('COUNT(DISTINCT household.id) AS household_export_result')
->select('h.id') ->addSelect('COUNT(DISTINCT acp.id) AS acp_export_result');
->from(Household::class, 'h'),
]; yield $qb;
} }
} }

View File

@ -11,6 +11,7 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\PersonFilters; namespace Chill\PersonBundle\Tests\Export\Filter\PersonFilters;
use Chill\MainBundle\Service\RollingDate\RollingDate;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\Person; use Chill\PersonBundle\Entity\Person;
use Chill\PersonBundle\Export\Filter\PersonFilters\AgeFilter; use Chill\PersonBundle\Export\Filter\PersonFilters\AgeFilter;
@ -43,28 +44,21 @@ final class AgeFilterTest extends AbstractFilterTest
[ [
'min_age' => '18', 'min_age' => '18',
'max_age' => '60', 'max_age' => '60',
'date_calc' => DateTime::createFromFormat('Y-m-d', '2020-05-01'), 'date_calc' => new RollingDate(RollingDate::T_TODAY),
],
[ // ça devrait faire boum !
'min_age' => '35',
'max_age' => '30',
'date_calc' => DateTime::createFromFormat('Y-m-d', '2020-05-01'),
], ],
]; ];
} }
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->select('p.id') ->select('person.id')
->from(Person::class, 'p'), ->from(Person::class, 'person'),
]; ];
} }
} }

View File

@ -11,9 +11,12 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\PersonFilters; namespace Chill\PersonBundle\Tests\Export\Filter\PersonFilters;
use Chill\MainBundle\Service\RollingDate\RollingDate;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\Person;
use Chill\PersonBundle\Export\Filter\PersonFilters\BirthdateFilter; use Chill\PersonBundle\Export\Filter\PersonFilters\BirthdateFilter;
use DateTime; use DateTime;
use Doctrine\ORM\EntityManagerInterface;
/** /**
* @internal * @internal
@ -39,35 +42,28 @@ final class BirthdateFilterTest extends AbstractFilterTest
{ {
return [ return [
[ [
'date_from' => DateTime::createFromFormat('Y-m-d', '2000-01-01'), 'date_from' => new RollingDate(RollingDate::T_YEAR_PREVIOUS_START),
'date_to' => DateTime::createFromFormat('Y-m-d', '2010-01-01'), 'date_to' => new RollingDate(RollingDate::T_TODAY),
], ],
]; ];
} }
public function getQueryBuilders() public function getQueryBuilders()
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container $em = self::$container
->get('doctrine.orm.entity_manager'); ->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->select('p.firstName') ->select('person.firstName')
->from('ChillPersonBundle:Person', 'p'), ->from(Person::class, 'person'),
$em->createQueryBuilder() $em->createQueryBuilder()
->select('p.firstName') ->select('count(DISTINCT person)')
->from('ChillPersonBundle:Person', 'p') ->from(Person::class, 'person')
// add a dummy where clause // add a dummy where clause
->where('p.firstname IS NOT NULL'), ->where('person.firstName IS NOT NULL'),
$em->createQueryBuilder()
->select('count(IDENTITY(p))')
->from('ChillPersonBundle:Person', 'p')
// add a dummy where clause
->where('p.firstname IS NOT NULL'),
]; ];
} }
} }

View File

@ -11,6 +11,7 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\PersonFilters; namespace Chill\PersonBundle\Tests\Export\Filter\PersonFilters;
use Chill\MainBundle\Service\RollingDate\RollingDate;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\Person; use Chill\PersonBundle\Entity\Person;
use Chill\PersonBundle\Export\Filter\PersonFilters\DeadOrAliveFilter; use Chill\PersonBundle\Export\Filter\PersonFilters\DeadOrAliveFilter;
@ -42,27 +43,25 @@ final class DeadOrAliveFilterTest extends AbstractFilterTest
return [ return [
[ [
'person_state' => 'alive', 'person_state' => 'alive',
'date_calc' => DateTime::createFromFormat('Y-m-d', '2021-05-01'), 'date_calc' => new RollingDate(RollingDate::T_TODAY),
], ],
[ [
'person_state' => 'deceased', 'person_state' => 'deceased',
'date_calc' => DateTime::createFromFormat('Y-m-d', '2021-05-01'), 'date_calc' => new RollingDate(RollingDate::T_TODAY),
], ],
]; ];
} }
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->select('p.id') ->select('person.id')
->from(Person::class, 'p'), ->from(Person::class, 'person'),
]; ];
} }
} }

View File

@ -11,6 +11,7 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\PersonFilters; namespace Chill\PersonBundle\Tests\Export\Filter\PersonFilters;
use Chill\MainBundle\Service\RollingDate\RollingDate;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\Person; use Chill\PersonBundle\Entity\Person;
use Chill\PersonBundle\Export\Filter\PersonFilters\DeathdateFilter; use Chill\PersonBundle\Export\Filter\PersonFilters\DeathdateFilter;
@ -41,24 +42,22 @@ final class DeathdateFilterTest extends AbstractFilterTest
{ {
return [ return [
[ [
'date_from' => DateTime::createFromFormat('Y-m-d', '2020-05-01'), 'date_from' => new RollingDate(RollingDate::T_YEAR_PREVIOUS_START),
'date_to' => DateTime::createFromFormat('Y-m-d', '2022-05-01'), 'date_to' => new RollingDate(RollingDate::T_TODAY),
], ],
]; ];
} }
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->select('p.id') ->select('person.id')
->from(Person::class, 'p'), ->from(Person::class, 'person'),
]; ];
} }
} }

View File

@ -14,6 +14,7 @@ namespace Chill\PersonBundle\Tests\Export\Filter\PersonFilters;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\Person; use Chill\PersonBundle\Entity\Person;
use Chill\PersonBundle\Export\Filter\PersonFilters\GenderFilter; use Chill\PersonBundle\Export\Filter\PersonFilters\GenderFilter;
use Doctrine\ORM\EntityManagerInterface;
/** /**
* @internal * @internal
@ -52,17 +53,15 @@ final class GenderFilterTest extends AbstractFilterTest
public function getQueryBuilders() public function getQueryBuilders()
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container $em = self::$container
->get('doctrine.orm.entity_manager'); ->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->select('p.firstName') ->select('person.firstName')
->from('ChillPersonBundle:Person', 'p'), ->from(Person::class, 'person')
]; ];
} }
} }

View File

@ -11,6 +11,7 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\PersonFilters; namespace Chill\PersonBundle\Tests\Export\Filter\PersonFilters;
use Chill\MainBundle\Service\RollingDate\RollingDate;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\MaritalStatus; use Chill\PersonBundle\Entity\MaritalStatus;
use Chill\PersonBundle\Entity\Person; use Chill\PersonBundle\Entity\Person;
@ -40,12 +41,14 @@ final class MaritalStatusFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
->from(MaritalStatus::class, 'm') ->from(MaritalStatus::class, 'm')
->select('m') ->select('m')
->getQuery() ->getQuery()
->setMaxResults(1)
->getResult(); ->getResult();
$data = []; $data = [];
@ -53,7 +56,6 @@ final class MaritalStatusFilterTest extends AbstractFilterTest
foreach ($array as $m) { foreach ($array as $m) {
$data[] = [ $data[] = [
'maritalStatus' => $m, 'maritalStatus' => $m,
'calc_date' => DateTime::createFromFormat('Y-m-d', '2022-05-01'),
]; ];
} }
@ -62,16 +64,14 @@ final class MaritalStatusFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->select('p.id') ->select('count(person)')
->from(Person::class, 'p'), ->from(Person::class, 'person'),
]; ];
} }
} }

View File

@ -39,9 +39,10 @@ final class NationalityFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$countries = $em->getRepository(Country::class)->findAll(); $countries = array_slice($em->getRepository(Country::class)->findAll(), 0, 1);
$data = []; $data = [];
@ -56,16 +57,14 @@ final class NationalityFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->select('p.id') ->select('count(person)')
->from(Person::class, 'p'), ->from(Person::class, 'person'),
]; ];
} }
} }

View File

@ -11,6 +11,7 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\PersonFilters; namespace Chill\PersonBundle\Tests\Export\Filter\PersonFilters;
use Chill\MainBundle\Service\RollingDate\RollingDate;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\Person; use Chill\PersonBundle\Entity\Person;
use Chill\PersonBundle\Entity\Person\ResidentialAddress; use Chill\PersonBundle\Entity\Person\ResidentialAddress;
@ -42,20 +43,22 @@ final class ResidentialAddressAtThirdpartyFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder() $array = $em->createQueryBuilder()
->from(ThirdPartyCategory::class, 'tpc') ->from(ThirdPartyCategory::class, 'tpc')
->select('tpc') ->select('tpc')
->getQuery() ->getQuery()
->setMaxResults(1)
->getResult(); ->getResult();
$data = []; $data = [];
foreach ($array as $r) { foreach ($array as $r) {
$data[] = [ $data[] = [
'thirdparty_cat' => $r, 'thirdparty_cat' => [$r],
'date_calc' => DateTime::createFromFormat('Y-m-d', '2022-05-01'), 'date_calc' => new RollingDate(RollingDate::T_TODAY),
]; ];
} }
@ -64,18 +67,15 @@ final class ResidentialAddressAtThirdpartyFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->select('p.id') ->select('person.id')
->from(Person::class, 'p') ->from(Person::class, 'person')
->join(ResidentialAddress::class, 'resaddr', Expr\Join::WITH, 'resaddr.person = p') ->join(ResidentialAddress::class, 'resaddr', Expr\Join::WITH, 'resaddr.person = person')
->join('p.center', 'center')
->join('resaddr.hostThirdParty', 'tparty') ->join('resaddr.hostThirdParty', 'tparty')
->join('tparty.categories', 'tpartycat'), ->join('tparty.categories', 'tpartycat'),
]; ];

View File

@ -11,6 +11,7 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\PersonFilters; namespace Chill\PersonBundle\Tests\Export\Filter\PersonFilters;
use Chill\MainBundle\Service\RollingDate\RollingDate;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\Person; use Chill\PersonBundle\Entity\Person;
use Chill\PersonBundle\Export\Filter\PersonFilters\ResidentialAddressAtUserFilter; use Chill\PersonBundle\Export\Filter\PersonFilters\ResidentialAddressAtUserFilter;
@ -39,14 +40,14 @@ final class ResidentialAddressAtUserFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
return []; return [
['date_calc' => new RollingDate(RollingDate::T_TODAY)]
];
} }
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);

View File

@ -11,8 +11,11 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\SocialWorkFilters; namespace Chill\PersonBundle\Tests\Export\Filter\SocialWorkFilters;
use Chill\MainBundle\Entity\UserJob;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWork;
use Chill\PersonBundle\Export\Filter\SocialWorkFilters\JobFilter; use Chill\PersonBundle\Export\Filter\SocialWorkFilters\JobFilter;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
/** /**
@ -37,21 +40,30 @@ final class JobFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
return []; self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class);
$jobs = $em->createQuery('SELECT j FROM ' . UserJob::class . ' j')
->setMaxResults(1)
->getResult();
return [
[
'job' => new ArrayCollection($jobs)
]
];
} }
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->select('acpw.id') ->select('acpw.id')
->from('ChillPersonBundle:AccompanyingPeriodWork', 'acpw'), ->from(AccompanyingPeriodWork::class, 'acpw'),
]; ];
} }
} }

View File

@ -39,9 +39,10 @@ final class ReferrerFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
$users = $em->getRepository(User::class)->findAll(); $users = array_slice($em->getRepository(User::class)->findAll(), 0, 1);
$data = []; $data = [];
@ -56,9 +57,7 @@ final class ReferrerFilterTest extends AbstractFilterTest
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);

View File

@ -11,7 +11,9 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter\SocialWorkFilters; namespace Chill\PersonBundle\Tests\Export\Filter\SocialWorkFilters;
use Chill\MainBundle\Entity\Scope;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWork;
use Chill\PersonBundle\Export\Filter\SocialWorkFilters\ScopeFilter; use Chill\PersonBundle\Export\Filter\SocialWorkFilters\ScopeFilter;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
@ -37,21 +39,30 @@ final class ScopeFilterTest extends AbstractFilterTest
public function getFormData(): array public function getFormData(): array
{ {
return []; self::bootKernel();
$em = self::$container->get(EntityManagerInterface::class);
$scopes = $em->createQuery('SELECT s FROM ' . Scope::class . ' s')
->setMaxResults(1)
->getResult();
return [
[
'scope' => $scopes
]
];
} }
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);
return [ return [
$em->createQueryBuilder() $em->createQueryBuilder()
->select('acpw.id') ->select('acpw.id')
->from('ChillPersonBundle:AccompanyingPeriodWork', 'acpw'), ->from(AccompanyingPeriodWork::class, 'acpw'),
]; ];
} }
} }

View File

@ -11,6 +11,7 @@ declare(strict_types=1);
namespace Chill\ReportBundle\Tests\Export\Filter; namespace Chill\ReportBundle\Tests\Export\Filter;
use Chill\MainBundle\Service\RollingDate\RollingDate;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\ReportBundle\Entity\Report; use Chill\ReportBundle\Entity\Report;
use Chill\ReportBundle\Export\Filter\ReportDateFilter; use Chill\ReportBundle\Export\Filter\ReportDateFilter;
@ -29,7 +30,7 @@ final class ReportDateFilterTest extends AbstractFilterTest
{ {
self::bootKernel(); self::bootKernel();
$this->filter = self::$container->get('chill.report.export.filter_date'); $this->filter = self::$container->get(ReportDateFilter::class);
} }
public function getFilter() public function getFilter()
@ -41,17 +42,15 @@ final class ReportDateFilterTest extends AbstractFilterTest
{ {
return [ return [
[ [
'date_from' => DateTime::createFromFormat('Y-m-d', '2021-07-01'), 'date_from' => new RollingDate(RollingDate::T_YEAR_PREVIOUS_START),
'date_to' => DateTime::createFromFormat('Y-m-d', '2022-07-01'), 'date_to' => new RollingDate(RollingDate::T_TODAY),
], ],
]; ];
} }
public function getQueryBuilders(): array public function getQueryBuilders(): array
{ {
if (null === self::$kernel) {
self::bootKernel(); self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class); $em = self::$container->get(EntityManagerInterface::class);

View File

@ -53,3 +53,4 @@ CHILL_REPORT_LISTS: Liste des rapports
Filter by report's date: Filtrer par date de rapport Filter by report's date: Filtrer par date de rapport
Report is after this date: Rapports après cette date Report is after this date: Rapports après cette date
Report is before this date: Rapports avant cette date Report is before this date: Rapports avant cette date
"Filtered by report's date: between %date_from% and %date_to%": "Filtré par date du rapport: entre le %date_from% et le %date_to%"