ExtensionTestCase.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Tests\Unit\Doctrine;
  4. use App\Entity\Access\Access;
  5. use App\Entity\Organization\Organization;
  6. use Doctrine\ORM\QueryBuilder;
  7. use PHPUnit\Framework\TestCase;
  8. use ReflectionException;
  9. use Symfony\Bundle\SecurityBundle\Security;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\RequestStack;
  12. use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
  13. use \PHPUnit\Framework\MockObject\MockObject;
  14. class ExtensionTestCase extends TestCase
  15. {
  16. protected Security|MockObject $security;
  17. protected RequestStack|MockObject $requestStack;
  18. protected Request|MockObject $request;
  19. protected QueryBuilder|MockObject $queryBuilder;
  20. protected Access|MockObject $user;
  21. protected TokenInterface|MockObject $token;
  22. protected Organization|MockObject $organization;
  23. protected function setUp(): void
  24. {
  25. $this->security = $this->createMock(Security::class);
  26. $this->requestStack = $this->createMock(RequestStack::class);
  27. $this->request = $this->createMock(Request::class);
  28. $this->queryBuilder = $this->createMock(QueryBuilder::class);
  29. $this->user = $this->createMock(Access::class);
  30. $this->token = $this->createMock(TokenInterface::class);
  31. $this->organization = $this->createMock(Organization::class);
  32. }
  33. /**
  34. * Utilise la réflexion pour invoquer la méthode protégée 'addWhere' sur l'extension donnée.
  35. *
  36. * @param object $extension l'instance de l'extension sur laquelle invoquer la méthode 'addWhere'
  37. * @param QueryBuilder $queryBuilder l'objet QueryBuilder à passer à la méthode 'addWhere'
  38. * @param mixed ...$params les autres paramètres à passer à la méthode 'addWhere'.
  39. * @throws ReflectionException
  40. */
  41. protected function invokeAddWhere($extension, $queryBuilder, ...$params): void
  42. {
  43. $reflection = new \ReflectionClass($extension);
  44. $method = $reflection->getMethod('addWhere');
  45. $method->setAccessible(true);
  46. $method->invoke($extension, $queryBuilder, ...$params);
  47. }
  48. }