CurrentNetworkOrganizationExtensionTest.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Tests\Unit\Doctrine\Network;
  4. use App\Doctrine\Network\CurrentNetworkOrganizationExtension;
  5. use App\Entity\Access\Access;
  6. use App\Entity\Network\NetworkOrganization;
  7. use App\Tests\Unit\Doctrine\ExtensionTestCase;
  8. class CurrentNetworkOrganizationExtensionTest extends ExtensionTestCase
  9. {
  10. private $extension;
  11. protected function setUp(): void
  12. {
  13. parent::setUp();
  14. $this->extension = new CurrentNetworkOrganizationExtension($this->security);
  15. }
  16. public function testSupportsReturnsTrueForNetworkOrganizationClass()
  17. {
  18. $this->assertTrue($this->extension->supports(NetworkOrganization::class, null));
  19. }
  20. public function testSupportsReturnsFalseForOtherClasses()
  21. {
  22. $classes = ['OtherClass', Access::class];
  23. foreach ($classes as $class) {
  24. $this->assertFalse($this->extension->supports($class, null));
  25. }
  26. }
  27. public function testAddWhere()
  28. {
  29. $this->user->method('getOrganization')->willReturn($this->organization);
  30. $this->security->method('getUser')->willReturn($this->user);
  31. $this->queryBuilder->method('getRootAliases')->willReturn(['o']);
  32. $this->queryBuilder->expects($this->once())
  33. ->method('andWhere')
  34. ->with('o.organization = :organization')
  35. ->willReturn($this->queryBuilder);
  36. $this->queryBuilder->expects($this->once())
  37. ->method('setParameter')
  38. ->with('organization', $this->organization)
  39. ->willReturn($this->queryBuilder);
  40. $this->invokeAddWhere($this->extension, $this->queryBuilder, NetworkOrganization::class, null);
  41. }
  42. public function testAddWhereWithNullUser()
  43. {
  44. $this->security->method('getUser')->willReturn(null);
  45. $this->queryBuilder->method('getRootAliases')->willReturn(['o']);
  46. $this->queryBuilder->expects($this->never())
  47. ->method('andWhere');
  48. $this->queryBuilder->expects($this->never())
  49. ->method('setParameter');
  50. $this->invokeAddWhere($this->extension, $this->queryBuilder, NetworkOrganization::class, null);
  51. }
  52. public function testAddWhereWithNullOrganization()
  53. {
  54. $this->user->method('getOrganization')->willReturn(null);
  55. $this->security->method('getUser')->willReturn($this->user);
  56. $this->queryBuilder->method('getRootAliases')->willReturn(['o']);
  57. $this->queryBuilder->expects($this->never())
  58. ->method('andWhere');
  59. $this->queryBuilder->expects($this->never())
  60. ->method('setParameter');
  61. $this->invokeAddWhere($this->extension, $this->queryBuilder, NetworkOrganization::class, null);
  62. }
  63. }