tests new filters ReferrerFilter and OpenBetweenDatesFilter (wip.. test failed)

This commit is contained in:
Mathieu Jaumotte 2022-08-01 10:49:02 +02:00
parent 2413c986ed
commit e3743d3593
4 changed files with 151 additions and 3 deletions

View File

@ -37,7 +37,7 @@ abstract class AbstractFilterTest extends KernelTestCase
protected function setUp(): void protected function setUp(): void
{ {
$$this->prophet = $this->getProphet(); $this->prophet = $this->getProphet();
} }
public function dataProviderAlterQuery() public function dataProviderAlterQuery()

View File

@ -48,7 +48,7 @@ class ReferrerFilter implements FilterInterface
/** /**
* @inheritDoc * @inheritDoc
*/ */
public function describeAction($data, $format = 'string') public function describeAction($data, $format = 'string'): array
{ {
$users = []; $users = [];
@ -116,7 +116,7 @@ class ReferrerFilter implements FilterInterface
/** /**
* @inheritDoc * @inheritDoc
*/ */
public function applyOn() public function applyOn(): string
{ {
return Declarations::ACP_SHARED; return Declarations::ACP_SHARED;
} }

View File

@ -0,0 +1,66 @@
<?php
namespace Chill\PersonBundle\Tests\Export\Filter;
use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Export\Filter\OpenBetweenDatesFilter;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Request;
class OpenBetweenDatesFilterTest extends AbstractFilterTest
{
private OpenBetweenDatesFilter $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_openbetweendates');
}
/**
* @inheritDoc
*/
public function getFilter()
{
return $this->filter;
}
/**
* @inheritDoc
*/
public function getFormData(): array
{
return [
[
'date_from' => \DateTime::createFromFormat('Y-m-d', '2022-05-01'),
'date_to' => \DateTime::createFromFormat('Y-m-d', '2022-06-01'),
],
];
}
/**
* @inheritDoc
*/
public function getQueryBuilders(): array
{
if (null === self::$kernel) {
self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class);
return [
$em->createQueryBuilder()
->from('ChillPersonBundle:AccompanyingPeriod', 'acp')
->select('acp.id'),
];
}
}

View File

@ -0,0 +1,82 @@
<?php
namespace Chill\PersonBundle\Tests\Export\Filter;
use Chill\MainBundle\Entity\User;
use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Export\Filter\ReferrerFilter;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Request;
class ReferrerFilterTest extends AbstractFilterTest
{
private ReferrerFilter $filter;
protected function setUp(): void
{
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_referrer');
}
/**
* @inheritDoc
*/
public function getFilter()
{
return $this->filter;
}
/**
* @inheritDoc
*/
public function getFormData(): array
{
$em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder()
->from(User::class, 'u')
->select('u')
->getQuery()
->getResult();
$data = [];
foreach($array as $u) {
$data[] = ['accepted_referrers' => $u];
}
return $data;
}
/**
* @inheritDoc
*/
public function getQueryBuilders(): array
{
if (null === self::$kernel) {
self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class);
return [
$em->createQueryBuilder()
->from('ChillPersonBundle:AccompanyingPeriod', 'acp')
->select('acp.id'),
$em->createQueryBuilder()
->from('ChillPersonBundle:AccompanyingPeriod\AccompanyingPeriodWork', 'acpw')
->select('acpw.id'),
$em->createQueryBuilder()
->from('ChillPersonBundle:AccompanyingPeriod\AccompanyingPeriodWork', 'acpw')
->join('acpw.referrers', 'r')
->select('r.id'),
];
}
}