AdminAccessUtilsTest.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. namespace App\Test\Service\Access;
  3. use App\ApiResources\Access\AdminAccess;
  4. use App\Entity\Access\Access;
  5. use App\Entity\Core\ContactPoint;
  6. use App\Entity\Organization\Organization;
  7. use App\Entity\Person\Person;
  8. use App\Service\Access\AdminAccessUtils;
  9. use App\Service\Access\Utils;
  10. use App\Service\Core\ContactPointUtils;
  11. use PHPUnit\Framework\TestCase;
  12. class AdminAccessUtilsTest extends TestCase
  13. {
  14. private Organization $organization;
  15. private AdminAccessUtils $adminAccessUtils;
  16. private ContactPointUtils $contactPointUtilsMock;
  17. private Utils $accessUtilsMock;
  18. public function setUp():void
  19. {
  20. $this->organization = new Organization();
  21. $this->accessUtilsMock = $this->getMockBuilder(Utils::class)->disableOriginalConstructor()->getMock();
  22. $this->contactPointUtilsMock = $this->getMockBuilder(ContactPointUtils::class)->disableOriginalConstructor()->getMock();
  23. $this->adminAccessUtils = new AdminAccessUtils(
  24. $this->accessUtilsMock,
  25. $this->contactPointUtilsMock
  26. );
  27. }
  28. /**
  29. * @see AdminAccessUtils::getAdminAccess()
  30. */
  31. public function testGetAdminAccessWithoutAdministrator(){
  32. $this->accessUtilsMock
  33. ->method('findAdminFor')
  34. ->with($this->organization)
  35. ->willReturn(null);
  36. $this->assertNull($this->adminAccessUtils->getAdminAccess($this->organization));
  37. }
  38. /**
  39. * @see AdminAccessUtils::getAdminAccess()
  40. */
  41. public function testGetAdminAccessWithoutContactPoint(){
  42. $administrator = new Access();
  43. $this->accessUtilsMock
  44. ->method('findAdminFor')
  45. ->with($this->organization)
  46. ->willReturn($administrator);
  47. $this->contactPointUtilsMock
  48. ->method('getPersonContactPointPrincipal')
  49. ->with($administrator)
  50. ->willReturn(null);
  51. $this->assertNull($this->adminAccessUtils->getAdminAccess($this->organization));
  52. }
  53. /**
  54. * @see AdminAccessUtils::getAdminAccess()
  55. */
  56. public function testGetAdminAccess(){
  57. $person = new Person();
  58. $administrator = new Access();
  59. $administrator->setPerson($person);
  60. $contactPoint = new ContactPoint();
  61. $this->accessUtilsMock
  62. ->method('findAdminFor')
  63. ->with($this->organization)
  64. ->willReturn($administrator);
  65. $this->contactPointUtilsMock
  66. ->method('getPersonContactPointPrincipal')
  67. ->with($administrator)
  68. ->willReturn($contactPoint);
  69. $this->assertInstanceOf(AdminAccess::class, $this->adminAccessUtils->getAdminAccess($this->organization));
  70. }
  71. }