add simple test file for each new filter

This commit is contained in:
Mathieu Jaumotte 2022-07-26 17:53:53 +02:00
parent 8bbca12487
commit 287d8f546b
9 changed files with 512 additions and 38 deletions

View File

@ -0,0 +1,75 @@
<?php
namespace Chill\PersonBundle\Tests\Export\Filter;
use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\AccompanyingPeriod\ClosingMotive;
use Chill\PersonBundle\Export\Filter\ClosingMotiveFilter;
use Doctrine\ORM\EntityManagerInterface;
class ClosingMotiveFilterTest extends AbstractFilterTest
{
private ClosingMotiveFilter $filter;
protected function setUp(): void
{
self::bootKernel();
// add a fake request with a default locale (used in translatable string)
$request = $this->prophesize();
$request->willExtend(\Symfony\Component\HttpFoundation\Request::class);
$request->getLocale()->willReturn('fr');
$this->filter = self::$container->get('chill.person.export.filter_closingmotive');
}
/**
* @inheritDoc
*/
public function getFilter()
{
return $this->filter;
}
/**
* @inheritDoc
*/
public function getFormData(): array
{
$em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder()
->from(ClosingMotive::class, 'm')
->select('m')
->getQuery()
->getResult();
$data = [];
foreach($array as $m) {
$data[] = ['accepted_closingmotives' => $m];
}
return $data;
}
/**
* @inheritDoc
*/
public function getQueryBuilders(): array
{
if (null === self::$kernel) {
self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class);
return [
$em->createQueryBuilder()
->select('acp.id')
->from('ChillPersonBundle:AccompanyingPeriod', 'acp'),
];
}
}

View File

@ -0,0 +1,63 @@
<?php
namespace Chill\PersonBundle\Tests\Export\Filter;
use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Export\Filter\ConfidentialFilter;
use Doctrine\ORM\EntityManagerInterface;
class ConfidentialFilterTest extends AbstractFilterTest
{
private ConfidentialFilter $filter;
protected function setUp(): void
{
self::bootKernel();
// add a fake request with a default locale (used in translatable string)
$request = $this->prophesize();
$request->willExtend(\Symfony\Component\HttpFoundation\Request::class);
$request->getLocale()->willReturn('fr');
$this->filter = self::$container->get('chill.person.export.filter_confidential');
}
/**
* @inheritDoc
*/
public function getFilter()
{
return $this->filter;
}
/**
* @inheritDoc
*/
public function getFormData(): array
{
return [
['accepted_confidentials' => true],
['accepted_confidentials' => false]
];
}
/**
* @inheritDoc
*/
public function getQueryBuilders(): array
{
if (null === self::$kernel) {
self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class);
return [
$em->createQueryBuilder()
->select('acp.id')
->from('ChillPersonBundle:AccompanyingPeriod', 'acp'),
];
}
}

View File

@ -4,6 +4,7 @@ namespace Chill\PersonBundle\Tests\Export\Filter;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Export\Filter\EmergencyFilter; use Chill\PersonBundle\Export\Filter\EmergencyFilter;
use Doctrine\ORM\EntityManagerInterface;
class EmergencyFilterTest extends AbstractFilterTest class EmergencyFilterTest extends AbstractFilterTest
{ {
@ -27,7 +28,7 @@ class EmergencyFilterTest extends AbstractFilterTest
return $this->filter; return $this->filter;
} }
public function getFormData() public function getFormData(): array
{ {
return [ return [
['accepted_emergencies' => true], ['accepted_emergencies' => true],
@ -35,14 +36,14 @@ class EmergencyFilterTest extends AbstractFilterTest
]; ];
} }
public function getQueryBuilders() public function getQueryBuilders(): array
{ {
if (null === self::$kernel) { 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()

View File

@ -0,0 +1,63 @@
<?php
namespace Chill\PersonBundle\Tests\Export\Filter;
use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Export\Filter\IntensityFilter;
use Doctrine\ORM\EntityManagerInterface;
class IntensityFilterTest extends AbstractFilterTest
{
private IntensityFilter $filter;
protected function setUp(): void
{
self::bootKernel();
// add a fake request with a default locale (used in translatable string)
$request = $this->prophesize();
$request->willExtend(\Symfony\Component\HttpFoundation\Request::class);
$request->getLocale()->willReturn('fr');
$this->filter = self::$container->get('chill.person.export.filter_intensity');
}
/**
* @inheritDoc
*/
public function getFilter()
{
return $this->filter;
}
/**
* @inheritDoc
*/
public function getFormData(): array
{
return [
['accepted_intensities' => 'occasional'],
['accepted_intensities' => 'regular']
];
}
/**
* @inheritDoc
*/
public function getQueryBuilders(): array
{
if (null === self::$kernel) {
self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class);
return [
$em->createQueryBuilder()
->select('acp.id')
->from('ChillPersonBundle:AccompanyingPeriod', 'acp'),
];
}
}

View File

@ -0,0 +1,75 @@
<?php
namespace Chill\PersonBundle\Tests\Export\Filter;
use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\AccompanyingPeriod\Origin;
use Chill\PersonBundle\Export\Filter\OriginFilter;
use Doctrine\ORM\EntityManagerInterface;
class OriginFilterTest extends AbstractFilterTest
{
private OriginFilter $filter;
protected function setUp(): void
{
self::bootKernel();
// add a fake request with a default locale (used in translatable string)
$request = $this->prophesize();
$request->willExtend(\Symfony\Component\HttpFoundation\Request::class);
$request->getLocale()->willReturn('fr');
$this->filter = self::$container->get('chill.person.export.filter_origin');
}
/**
* @inheritDoc
*/
public function getFilter()
{
return $this->filter;
}
/**
* @inheritDoc
*/
public function getFormData(): array
{
$em = self::$container->get(EntityManagerInterface::class);
$array = $em->createQueryBuilder()
->from(Origin::class, 'o')
->select('o')
->getQuery()
->getResult();
$data = [];
foreach($array as $l) {
$data[] = ['accepted_origins' => $l];
}
return $data;
}
/**
* @inheritDoc
*/
public function getQueryBuilders(): array
{
if (null === self::$kernel) {
self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class);
return [
$em->createQueryBuilder()
->select('acp.id')
->from('ChillPersonBundle:AccompanyingPeriod', 'acp'),
];
}
}

View File

@ -1,63 +1,75 @@
<?php <?php
/**
* Chill is a software for social workers
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Filter; namespace Chill\PersonBundle\Tests\Export\Filter;
use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Doctrine\ORM\QueryBuilder; use Chill\PersonBundle\Entity\SocialWork\SocialIssue;
use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; use Chill\PersonBundle\Export\Filter\SocialIssueFilter;
use Doctrine\ORM\EntityManagerInterface;
final class SocialIssueFilterTest extends AbstractFilterTest class SocialIssueFilterTest extends AbstractFilterTest
{ {
/** private SocialIssueFilter $filter;
* @var \Chill\PersonBundle\Export\Filter\GenderFilter
*/
private $filter;
protected function setUp(): void protected function setUp(): void
{ {
parent::setUp();
self::bootKernel(); self::bootKernel();
try { // add a fake request with a default locale (used in translatable string)
$this->filter = self::$container->get('chill.person.export.filter_socialissue'); $request = $this->prophesize();
} catch (ServiceNotFoundException $e) {
$this->markTestSkipped('Filter service is not found'); $request->willExtend(\Symfony\Component\HttpFoundation\Request::class);
} $request->getLocale()->willReturn('fr');
$this->filter = self::$container->get('chill.person.export.filter_socialissue');
} }
/**
* @inheritDoc
*/
public function getFilter() public function getFilter()
{ {
return $this->filter; return $this->filter;
} }
public function getFormData() /**
* @inheritDoc
*/
public function getFormData(): array
{ {
return [ $em = self::$container->get(EntityManagerInterface::class);
['accepted_socialissue' => [
]], $array = $em->createQueryBuilder()
['accepted_socialissue' => [ ->from(SocialIssue::class, 'si')
->select('si')
->getQuery()
->getResult();
]], $data = [];
['accepted_socialissue' => [
]], foreach($array as $i) {
]; $data[] = ['accepted_socialissues' => $i];
}
return $data;
} }
public function getQueryBuilders() /**
* @inheritDoc
*/
public function getQueryBuilders(): array
{ {
// TODO: Implement getQueryBuilders() method.
}
if (null === self::$kernel) {
self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class);
return [
$em->createQueryBuilder()
->select('acp.id')
->from('ChillPersonBundle:AccompanyingPeriod', 'acp'),
];
}
} }

View File

@ -0,0 +1,64 @@
<?php
namespace Chill\PersonBundle\Tests\Export\Filter;
use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Export\Filter\StepFilter;
class StepFilterTest extends AbstractFilterTest
{
private StepFilter $filter;
protected function setUp(): void
{
self::bootKernel();
// add a fake request with a default locale (used in translatable string)
$request = $this->prophesize();
$request->willExtend(\Symfony\Component\HttpFoundation\Request::class);
$request->getLocale()->willReturn('fr');
$this->filter = self::$container->get('chill.person.export.filter_step');
}
/**
* @inheritDoc
*/
public function getFilter()
{
return $this->filter;
}
/**
* @inheritDoc
*/
public function getFormData(): array
{
return [
['accepted_steps' => AccompanyingPeriod::STEP_DRAFT],
['accepted_steps' => AccompanyingPeriod::STEP_CONFIRMED],
['accepted_steps' => AccompanyingPeriod::STEP_CLOSED],
];
}
/**
* @inheritDoc
*/
public function getQueryBuilders(): array
{
if (null === self::$kernel) {
self::bootKernel();
}
$em = self::$container->get('doctrine.orm.entity_manager');
return [
$em->createQueryBuilder()
->select('acp.id')
->from('ChillPersonBundle:AccompanyingPeriod', 'acp'),
];
}
}

View File

@ -0,0 +1,60 @@
<?php
namespace Chill\PersonBundle\Tests\Export\Filter;
use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Export\Filter\UserJobFilter;
use Doctrine\ORM\EntityManagerInterface;
class UserJobFilterTest extends AbstractFilterTest
{
private UserJobFilter $filter;
protected function setUp(): void
{
self::bootKernel();
// add a fake request with a default locale (used in translatable string)
$request = $this->prophesize();
$request->willExtend(\Symfony\Component\HttpFoundation\Request::class);
$request->getLocale()->willReturn('fr');
$this->filter = self::$container->get('chill.person.export.filter_userjob');
}
/**
* @inheritDoc
*/
public function getFilter()
{
return $this->filter;
}
/**
* @inheritDoc
*/
public function getFormData(): array
{
return [];
}
/**
* @inheritDoc
*/
public function getQueryBuilders(): array
{
if (null === self::$kernel) {
self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class);
return [
$em->createQueryBuilder()
->select('acp.id')
->from('ChillPersonBundle:AccompanyingPeriod', 'acp'),
];
}
}

View File

@ -0,0 +1,61 @@
<?php
namespace Chill\PersonBundle\Tests\Export\Filter;
use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Export\Filter\UserScopeFilter;
use Doctrine\ORM\EntityManagerInterface;
class UserScopeFilterTest extends AbstractFilterTest
{
private UserScopeFilter $filter;
protected function setUp(): void
{
self::bootKernel();
// add a fake request with a default locale (used in translatable string)
$request = $this->prophesize();
$request->willExtend(\Symfony\Component\HttpFoundation\Request::class);
$request->getLocale()->willReturn('fr');
$this->filter = self::$container->get('chill.person.export.filter_userscope');
}
/**
* @inheritDoc
*/
public function getFilter()
{
return $this->filter;
}
/**
* @inheritDoc
*/
public function getFormData(): array
{
return [];
}
/**
* @inheritDoc
*/
public function getQueryBuilders(): array
{
if (null === self::$kernel) {
self::bootKernel();
}
$em = self::$container->get(EntityManagerInterface::class);
return [
$em->createQueryBuilder()
->select('acp.id')
->from('ChillPersonBundle:AccompanyingPeriod', 'acp'),
];
}
}