AccessProfileCreatorTest.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. namespace App\Test\Service\Access;
  3. use App\ApiResources\Profile\AccessProfile;
  4. use App\ApiResources\Profile\OrganizationProfile;
  5. use App\Entity\Access\Access;
  6. use App\Entity\Organization\Organization;
  7. use App\Entity\Person\Person;
  8. use App\Service\Access\AccessProfileCreator;
  9. use App\Service\Organization\OrganizationProfileCreator;
  10. use PHPUnit\Framework\TestCase;
  11. use Symfony\Component\Security\Core\Role\RoleHierarchy;
  12. class AccessProfileCreatorTest extends TestCase
  13. {
  14. private Access $access;
  15. private Person $person;
  16. public function setUp():void
  17. {
  18. $this->person = new Person();
  19. $this->person
  20. ->setName('Foo')
  21. ->setGivenName('Bar')
  22. ;
  23. $this->access = new Access();
  24. $this->access
  25. ->setAdminAccess(true)
  26. ->setPerson($this->person)
  27. ->setOrganization(new Organization())
  28. ;
  29. }
  30. /**
  31. * @see AccessProfileCreator::getAccessProfile()
  32. */
  33. public function testGetAccessProfile(){
  34. $roleHierarchyMock = $this->getMockBuilder(RoleHierarchy::class)->disableOriginalConstructor()->getMock();
  35. $roleHierarchyMock
  36. ->method('getReachableRoleNames')
  37. ->willReturn(["ROLE_A", "ROLE_B"]);
  38. $organizationProfileCreator = $this->getMockBuilder(OrganizationProfileCreator::class)->disableOriginalConstructor()->getMock();
  39. $organizationProfileCreator
  40. ->method('getOrganizationProfile')
  41. ->with($this->access->getOrganization())
  42. ->willReturn(new OrganizationProfile());
  43. $accessProfileCreator = new AccessProfileCreator($roleHierarchyMock,$organizationProfileCreator);
  44. $accessProfile = $accessProfileCreator->getAccessProfile($this->access);
  45. $this->assertInstanceOf(AccessProfile::class, $accessProfile);
  46. }
  47. }