fix tests

This commit is contained in:
Julien Fastré 2025-04-08 16:32:56 +02:00
parent 8516c87a14
commit b6375cad6c
Signed by: julienfastre
GPG Key ID: BDE2190974723FCB
12 changed files with 69 additions and 17 deletions

View File

@ -17,7 +17,6 @@ use Chill\MainBundle\Form\Type\Export\AggregatorType;
use Chill\MainBundle\Form\Type\Export\ExportType;
use Chill\MainBundle\Form\Type\Export\FilterType;
use Chill\MainBundle\Repository\CenterRepositoryInterface;
use Chill\MainBundle\Repository\RegroupmentRepository;
use Chill\MainBundle\Repository\RegroupmentRepositoryInterface;
/**

View File

@ -16,7 +16,6 @@ use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\NonUniqueResultException;
use Doctrine\ORM\NoResultException;
use Doctrine\Persistence\ObjectRepository;
final readonly class RegroupmentRepository implements RegroupmentRepositoryInterface
{

View File

@ -1,5 +1,14 @@
<?php
declare(strict_types=1);
/*
* 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.
*/
namespace Chill\MainBundle\Repository;
use Chill\MainBundle\Entity\Regroupment;

View File

@ -152,7 +152,6 @@ abstract class AbstractFilterTest extends KernelTestCase
public function testDataNormalization(array $data, int $version, array $customAssert): void
{
$filter = $this->getFilter();
$em = $this->getContainer()->get(EntityManagerInterface::class);
$normalized = $filter->normalizeFormData($data);
$actual = $filter->denormalizeFormData($normalized, $version);

View File

@ -18,7 +18,6 @@ use Chill\MainBundle\Export\ExportManager;
use PHPUnit\Framework\TestCase;
use Prophecy\Argument;
use Prophecy\PhpUnit\ProphecyTrait;
use Psr\Log\NullLogger;
use Symfony\Component\Security\Core\Security;
use Symfony\Component\Serializer\SerializerInterface;
use Twig\Environment;

View File

@ -19,7 +19,6 @@ use Chill\MainBundle\Export\ExportManager;
use Chill\MainBundle\Export\FilterInterface;
use Chill\MainBundle\Export\FormatterInterface;
use Chill\MainBundle\Repository\CenterRepositoryInterface;
use Chill\MainBundle\Repository\RegroupmentRepository;
use Chill\MainBundle\Repository\RegroupmentRepositoryInterface;
use PHPUnit\Framework\TestCase;
use Prophecy\Argument;

View File

@ -17,7 +17,6 @@ use Chill\MainBundle\Export\AggregatorInterface;
use Chill\MainBundle\Export\ExportInterface;
use Chill\MainBundle\Export\ExportManager;
use Chill\MainBundle\Export\FilterInterface;
use Chill\MainBundle\Form\Type\Export\ExportType;
use Chill\MainBundle\Repository\UserRepositoryInterface;
use Chill\MainBundle\Security\Authorization\AuthorizationHelper;
use Chill\MainBundle\Test\PrepareCenterTrait;
@ -30,12 +29,10 @@ use Prophecy\Prophet;
use Psr\Log\LoggerInterface;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
/**
* Test the export manager.
@ -480,7 +477,7 @@ class DummyExport implements ExportInterface
public function initiateQuery(array $requiredModifiers, array $acl, array $data, \Chill\MainBundle\Export\ExportGenerationContext $context): QueryBuilder
{
throw new \RuntimeException("not implemented");
throw new \RuntimeException('not implemented');
}
public function requiredRole(): string

View File

@ -156,7 +156,7 @@ class SortExportElementTest extends KernelTestCase
return [];
}
public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface
public function getTitle(): string|TranslatableInterface
{
return $this->title;
}
@ -180,7 +180,7 @@ class SortExportElementTest extends KernelTestCase
return new class ($title) implements FilterInterface {
public function __construct(private readonly string $title) {}
public function getTitle(): string|\Symfony\Contracts\Translation\TranslatableInterface
public function getTitle(): string|TranslatableInterface
{
return $this->title;
}
@ -207,7 +207,7 @@ class SortExportElementTest extends KernelTestCase
return [];
}
public function describeAction($data, $format = 'string'): string|\Symfony\Contracts\Translation\TranslatableInterface|array
public function describeAction($data, $format = 'string'): string|TranslatableInterface|array
{
return ['a', []];
}

View File

@ -76,12 +76,18 @@ final readonly class ReferrerFilter implements FilterInterface
public function normalizeFormData(array $formData): array
{
return ['accepted_agents' => $this->normalizeDoctrineEntity($formData['accepted_agents']), 'agent_at' => $formData['agent_at']->normalize()];
return [
'accepted_agents' => $this->normalizeDoctrineEntity($formData['accepted_agents']),
'agent_at' => array_key_exists('agent_at', $formData) ? $formData['agent_at']?->normalize() : (new RollingDate(RollingDate::T_TODAY))->normalize(),
];
}
public function denormalizeFormData(array $formData, int $fromVersion): array
{
return ['accepted_agents' => $this->denormalizeDoctrineEntity($formData['accepted_agents'], $this->userRepository), 'agent_at' => RollingDate::fromNormalized($formData['agent_at'])];
return [
'accepted_agents' => $this->denormalizeDoctrineEntity($formData['accepted_agents'], $this->userRepository),
'agent_at' => array_key_exists('agent_at', $formData) ? RollingDate::fromNormalized($formData['agent_at']) : new RollingDate(RollingDate::T_TODAY),
];
}
public function getFormDefaultData(): array

View File

@ -12,7 +12,6 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Tests\Export\Export;
use Chill\MainBundle\Entity\Center;
use Chill\MainBundle\Entity\User;
use Chill\MainBundle\Repository\CenterRepositoryInterface;
use Chill\MainBundle\Repository\ScopeRepositoryInterface;
use Chill\MainBundle\Security\Authorization\AuthorizationHelperForCurrentUserInterface;
@ -27,7 +26,6 @@ use Chill\PersonBundle\Security\Authorization\AccompanyingPeriodVoter;
use Doctrine\ORM\EntityManagerInterface;
use Prophecy\Argument;
use Prophecy\PhpUnit\ProphecyTrait;
use Symfony\Component\Security\Core\Security;
/**
* @internal

View File

@ -15,6 +15,7 @@ use Chill\MainBundle\Test\Export\AbstractFilterTest;
use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWork;
use Chill\PersonBundle\Export\Filter\AccompanyingCourseFilters\HandlingThirdPartyFilter;
use Chill\ThirdPartyBundle\Entity\ThirdParty;
use Chill\ThirdPartyBundle\Repository\ThirdPartyRepository;
use Chill\ThirdPartyBundle\Templating\Entity\ThirdPartyRender;
use Doctrine\ORM\EntityManagerInterface;
@ -27,16 +28,19 @@ class HandlingThirdPartyFilterTest extends AbstractFilterTest
{
private ThirdPartyRender $thirdPartyRender;
private ThirdPartyRepository $thirdPartyRepository;
protected function setUp(): void
{
parent::setUp();
self::bootKernel();
$this->thirdPartyRender = self::getContainer()->get(ThirdPartyRender::class);
$this->thirdPartyRepository = self::getContainer()->get(ThirdPartyRepository::class);
}
public function getFilter()
{
return new HandlingThirdPartyFilter($this->thirdPartyRender);
return new HandlingThirdPartyFilter($this->thirdPartyRender, $this->thirdPartyRepository);
}
public static function getFormData(): array

View File

@ -59,6 +59,49 @@ final class ReferrerFilterTest extends AbstractFilterTest
return $data;
}
/**
* @dataProvider dataProviderFormDataToNormalize
*/
public function testDataNormalization(array $data, int $version, array $expected): void
{
$filter = $this->getFilter();
$normalized = $filter->normalizeFormData($data);
$actual = $filter->denormalizeFormData($normalized, $version);
self::assertEqualsCanonicalizing(array_keys($expected), array_keys($actual));
}
public static function dataProviderFormDataToNormalize(): iterable
{
self::bootKernel();
$em = self::getContainer()->get(EntityManagerInterface::class);
$users = array_slice($em->getRepository(User::class)->findAll(), 0, 1);
yield [
[
'accepted_agents' => [$users[0]],
'agent_at' => new RollingDate(RollingDate::T_TODAY),
],
1,
[
'accepted_agents' => [$users[0]],
'agent_at' => new RollingDate(RollingDate::T_TODAY),
],
];
yield [
[
'accepted_agents' => [$users[0]],
],
1,
[
'accepted_agents' => [$users[0]],
'agent_at' => new RollingDate(RollingDate::T_TODAY),
],
];
}
public static function getQueryBuilders(): iterable
{
self::bootKernel();