DateTimeConstraintExtensionAdditionalTest.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Tests\DoctrineExtension\Access\AdditionalExtension;
  4. use App\Doctrine\Access\AdditionalExtension\DateTimeConstraintExtensionAdditional;
  5. use App\Tests\Unit\DoctrineExtension\AbstractExtensionTest;
  6. class DateTimeConstraintExtensionAdditionalTest extends AbstractExtensionTest
  7. {
  8. private $extension;
  9. protected function setUp(): void
  10. {
  11. parent::setUp();
  12. $this->extension = new DateTimeConstraintExtensionAdditional($this->requestStack);
  13. }
  14. public function testSupportMethodReturnsTrue()
  15. {
  16. $this->request->method('isMethod')->with('GET')->willReturn(true);
  17. $this->request->method('get')->with('_time_constraint', true)->willReturn(true);
  18. $this->requestStack->method('getMainRequest')->willReturn($this->request);
  19. $this->assertTrue($this->extension->support('any_name'));
  20. }
  21. public function testSupportMethodReturnsFalse()
  22. {
  23. $this->request->method('isMethod')->with('GET')->willReturn(false);
  24. $this->requestStack->method('getMainRequest')->willReturn($this->request);
  25. $this->assertFalse($this->extension->support('any_name'));
  26. }
  27. public function testSupportMethodReturnsFalseWhenTimeConstraintIsFalse()
  28. {
  29. $this->request->method('isMethod')->with('GET')->willReturn(true);
  30. $this->request->method('get')->with('_time_constraint', true)->willReturn(false);
  31. $this->requestStack->method('getMainRequest')->willReturn($this->request);
  32. $this->assertFalse($this->extension->support('any_name'));
  33. }
  34. public function testAddWhereMethod()
  35. {
  36. $this->queryBuilder->method('getRootAliases')->willReturn(['rootAlias']);
  37. $this->queryBuilder
  38. ->expects($this->once())
  39. ->method('innerJoin')
  40. ->with('rootAlias.organizationFunction', 'organization_function');
  41. $this->invokeAddWhere($this->extension, $this->queryBuilder);
  42. }
  43. public function testAddWhereMethodWithNoRootAlias()
  44. {
  45. $this->queryBuilder->method('getRootAliases')->willReturn([]);
  46. $this->expectException(\LogicException::class);
  47. $this->expectExceptionMessage('No root alias defined.');
  48. $this->invokeAddWhere($this->extension, $this->queryBuilder);
  49. }
  50. }